1

我一直在尝试生成一个将搜索 table1 的查询,然后连接 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() 之间存在某种形式的混搭。但我并没有真正接近我的答案。

谢谢大家的帮助!

4

2 回答 2

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

SQL Fiddle with Demo

于 2012-09-12T00:24:41.963 回答
2

我猜你在寻找GROUP_CONCATMySQL

SELECT  a.name, GROUP_CONCAT(b.name) dogsName
FROM    People a
        LEFT JOIN Dogs b
          ON a.id = b.owner
GROUP BY a.name

SQLFiddle 演示

于 2012-09-12T00:22:47.520 回答