我一直在尝试生成一个查询table1的查询,然后CONCAT table2.column1的所有值,其中table1.id = table2.owner
People
name | id
-------------
tim | 1
jill | 2
john | 3
Dogs
name | owner
--------------
a | 1
b | 1
c | 2
d | 2
使用下表我需要一个输出
的查询 name | dogs
-----------
tim | a, b
jill | c, d
john | NULL (or a blank text or just so long as the name john still shows)
我花了几个小时,真的不能这样做。我认为OUTER JOIN和group_concat()之间存在某种形式的混搭。但我并没有真正接近我的答案。
感谢您的帮助!
答案 0 :(得分:3)
您需要使用 GROUP_CONCAT
和GROUP BY
SELECT p.name, GROUP_CONCAT(d.name)
FROM people p
LEFT JOIN dogs d
ON p.id = d.owner
GROUP BY p.name
答案 1 :(得分:2)
我猜你在MySQL
寻找 GROUP_CONCAT 。
SELECT a.name, GROUP_CONCAT(b.name) dogsName
FROM People a
LEFT JOIN Dogs b
ON a.id = b.owner
GROUP BY a.name