2017-06-25 14 views
-1

1:Mの関係を持つ2つのテーブルがあります。 結合出力には2つの列があります。 第1列 - 親表から 第2列I子表からすべての関連レコードを連結します。 出力されるレコードの総数は、親テーブル内のレコード数になります。 データベース:MySQL。SQL:子テーブルのレコードを単一レコードに連結します。

例:

親(IDのPK、PARENT_NAME)

子(IDのPK、FK、CHILD_NAMEをPARENT_ID)

 
Parent: 
| id | parent_name 
——————------------ 
| 1 | Smith 
| 2 | David 

Child : 
id | parent_id | child_name 
———————————————--------------- 
1 | 1   | Anna 
2 | 1   | Linda 
3 | 2   | Maria 
4 | 2   | Michael 

Expected join result: 

parent_name | child_name 
——————------|——————— 
Smith  | Anna, Linda 
David  | Maria, Michael 

答えて

2

あなたはGROUP_CONCATを必要としています。試してみよう -

SELECT P.parent_name, GROUP_CONCAT(C.child_name) 
FROM Parent P INNER JOIN Child C 
ON P.id = C.parent_id 
GROUP BY P.parent_name 

これが役に立ちます。

0
Select pr.parent_name,group_concat(ch.child_name) 
from parent pr join child ch 
where pr.id = ch.parent_id 
group by pr.parent_name; 

グループconcatはMySQLで機能します。あなたはそれを使うことができます。

試してみてください。

+0

私の声明に間違っています – user21546

関連する問題