2017-06-25 5 views
-1

Es gibt 2 Tabellen mit 1: M-Beziehung. Die Join-Ausgabe soll 2 Spalten haben: 1. Spalte - von Parent-Tabelle und 2. Spalte I eine Verkettung aller verwandten Datensätze aus der Kind-Tabelle. Die Gesamtzahl der Datensätze in der Ausgabe muss # der Datensätze in der übergeordneten Tabelle sein. Datenbank: MySQL.SQL: verketten Datensätze von Kind-Tabelle in einzelne Datensatz

Beispiel:

Parent (id PK, PARENT_NAME)

Kind (id PK, PARENT_ID FK, child_name)

 
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 

Antwort

2

Sie benötigen Group_concat. Versuchen Sie das -

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 

Ich hoffe, dies hilft.

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; 

Gruppe Concat ist Funktion in MySQL. Sie können das verwenden.

Versuchen Sie es :)

+0

Was ist falsch in meiner Aussage – user21546

Verwandte Themen