[SQL] Ent-Normalisierung

dine

New member
16 November 2007
1
0
Hallo,

vereinfacht gesagt: ich habe 2 normalisierte Tabellen


Namenstabelle
ID Name
1 AAA
2 BBB
3 CCC


Telefontabele (0-2 Nummern pro Person)
ID Nummer
1 111
1 123
3 333

Und will die beiden so verknüpfen, dass ich folgende Ergebistabelle habe:
Name Nummern
AAA 111, 123
BBB ---
CCC 333


Mein Ansatz ist:

SELECT Name,
Nummer1 +', '+Nummer2
FROM Namentab,NummernTab1,NummernTab2
WHERE Namentab1.ID=NummernTab1.ID
AND Namentab1.ID=NummernTab2.ID
AND Nummer1<Nummer2

Und das führt zu dem Resultat:

Name Nummern
AAA 111,123

BBB und CCC fehlen. Oder ich bekomme zwei Zeilen für AAA, oder ich habe zweimal 111,111 ohne 123. Mit diesem Ansatz komme ich irgendwie nicht weiter.
 
Ich bin mir grad nicht sicher, ob GROUP_CONCAT() MySQL-proprietär ist, aber damit dürfte das recht einfach sein:
Code:
SELECT Name, GROUP_CONCAT(Nummer SEPERATOR ',')
FROM NamenTab
  LEFT JOIN NummernTab USING(id)
GROUP BY id
Untested...