【发布时间】:2019-01-15 21:45:04
【问题描述】:
我正在尝试做一个非常复杂的查询(至少对我来说非常复杂,对你来说不是:))
我有用户和 cmets 表。
SQL 小提琴:http://sqlfiddle.com/#!9/b1f845/2
select user_id, status_id from comments where user_id in (2,3);
+---------+-----------+
| user_id | status_id |
+---------+-----------+
| 2 | 10 |
| 2 | 10 |
| 2 | 10 |
| 2 | 7 |
| 2 | 7 |
| 2 | 10 |
| 3 | 9 |
| 2 | 9 |
| 2 | 6 |
+---------+-----------+
如果我使用
select user_id, status_id from comments where user_id in (2,3)
它返回很多重复值。
如果可能的话,我想得到什么。
如果你看到status_id = 10 有user_id= 2,3 and 4 and 2 multiple times.
所以从这里我想获得最大的最新user_id(唯一),例如,
这将是 user_id = 4 and 2 现在主要的复杂部分。我现在想在一列中获取user_id= 4 and 2 的用户信息,以便最后我可以得到这样的东西
status_id | userOneUserName | userTwoUserName
10 sadek4 iamsadek2
---------------------------------------------
7 | iamsadek2 | null
---------------------------------------------
9 . | iamsadek2 | sadek2
---------------------------------------------
6 | iamsadek2 | null
我怎样才能实现这么复杂的事情。 目前我必须使用应用程序逻辑来做到这一点。
感谢您的宝贵时间。
【问题讨论】:
-
你用的是什么版本的 MySQL?
-
感谢您的快速回复。运行 mysql --version 我得到
mysql Ver 14.14 Distrib 5.7.21, for osx10.13 (x86_64) using EditLine wrapper -
这个数据集中没有用户4
标签: mysql group-by left-join group-concat