2014-10-01 35 views
0

就我個人而言,MySQL的這種想法在這種情況下不是一個可能的想法會有所幫助。父母SELECT中的Concat子記錄

我們想在select父表中記錄一個父表和連接(類似的東西)select中的子行。在這裏顯然是錯誤的MySQL,但要說明我們想要實現的。

SELECT parentattr, 
     CONCAT (
       SELECT name 
       FROM child 
       WHERE child.parentId = parent.id)) as allchildernames 
FROM parent 
+0

嘗試查詢(並將'CONCAT()'放在外部查詢中=]) – newfurniturey 2014-10-01 12:38:16

回答

1

您還需要一個GROUP BY,再加上你需要指定到底哪個名字正在連接。在你的內心使用[`GROUP_CONCAT(名稱)`](http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat)

SELECT parentattr1, parentattr2, GROUP_CONCAT(c.name ORDER By c.name) 
FROM parent p 
LEFT JOIN child c ON parentId = c.id 
GROUP BY parentattr1, parentattr2 
0

嘗試使用GROUP_CONCAT(),這裏是examples

parent.id後面還有一個額外的)

0

試試這個

SELECT parentattr, GROUP_CONCAT(child.name SEPARATOR ', ') as allchildernames 

從父母,子女 其中child.parentId = parent.id 組由parent.id