我有一张这样的表
id | user_id | code | type | time
-----------------------------------
2 2 fdsa r 1358300000
3 2 barf r 1358311000
4 2 yack r 1358311220
5 3 surf r 1358311000
6 3 yooo r 1358300000
7 4 poot r 1358311220
我想为每个匹配时间获取用户2和用户3的连锁“代码”列。
我想收到这样的结果集:
code | time
-------------------------------
fdsayooo 1358300000
barfsurf 1358311000
请注意,没有yackpoot代码,因为查询没有查找用户4。
答案 0 :(得分:1)
您可以使用GROUP_CONCAT
功能。试试这个:
SELECT GROUP_CONCAT(code SEPARATOR '') code, time
FROM tbl
WHERE user_id in (2, 3)
GROUP BY time
HAVING COUNT(time) = 2;
<强> SQL FIDDLE DEMO 强>
答案 1 :(得分:0)
您要找的是GROUP_CONCAT
,但您在问题中遗漏了很多细节,以提供一个很好的例子。这应该让你开始:
SELECT GROUP_CONCAT(code), time
FROM myTable
WHERE user_id in (2, 3)
GROUP BY time;
缺少详情:
SEPARATOR ''
GROUP_CONCAT
的分隔符
醇>
注意:
user_id
和time
)执行此操作,可以向GROUP BY添加更多字段。