1

table1を検索し、table2.column1のすべての値をCONCATするクエリを作成しようとしています。ここで、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 FiddlewithDemoを参照してください

于 2012-09-12T00:24:41.963 に答える
2

でGROUP_CONCATを探していると思いますMySQL

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 に答える