Hallo,
ich habe eine MySQL-Tabelle mit Vereinen und eine Tabelle mit Beziehungen zwischen den Vereinen. Ein Chor kann Mitglied sein in 0..n Dachorganisationen (Sängerkreis, Landes-, Bundesverband).
Wenn ich nun die Dachorganisationen pro Chor mit LEFT JOIN dazuhole, kann ich merere Zeilen pro Chor bekommen. Die Darstellung in der HTML-Tabelle soll jedoch in derselben Zeile, verschiedene Spalten erfolgen: Chorverzeichnis - siehe z.B. ganz unten Lady Pirates, Mitglied in zwei Organisationen.
Mein SQL:
(
SELECT
adr1.id
,adr1.gewerbeart
,adr1.firma1
,adr1.land_kz
,adr1.plz
,adr1.ort
,adr1.homepage
,adr1.anred
,adr1.vname
,adr1.nname
,adr1.funktion
,adr1.last_login
,'1' remso_mitglied
,IF (vbm1.verband_id='707',1,0) marinebund_mitglied
,IF (vbm1.verband_id='785',1,0) issa_mitglied
,IF (vbm1.verband_id='834',1,0) shantynederland_mitglied
FROM bia_adressen adr1
LEFT JOIN bia_verband_mitglied vbm1
ON vbm1.mitglied_id = adr1.id
WHERE SUBSTRING(adr1.gewerbeart,6,1) = 'S'
AND adr1.loe_kz = 0
) UNION (
SELECT
itr1.id
,itr1.gewerbeart
,itr1.firma1
,itr1.land_kz
,itr1.plz
,itr1.ort
,itr1.homepage
,itr1.anred
,itr1.vname
,itr1.nname
,itr1.funktion
,'0' last_login
,'0' remso_mitglied
,IF (vbm1.verband_id='707',1,0) marinebund_mitglied
,IF (vbm1.verband_id='785',1,0) issa_mitglied
,IF (vbm1.verband_id='834',1,0) shantynederland_mitglied
FROM bia_interessenten itr1
LEFT JOIN bia_verband_mitglied vbm1
ON vbm1.interessent_id = itr1.id
WHERE SUBSTRING(itr1.gewerbeart,6,1) = 'S'
AND itr1.loe_kz = 0
#GROUP BY itr1.id
)
ORDER BY land_kz, plz, ort
Das GROUP BY führt nicht zum Ziel, es "verschluckt" die Informationen des JOIN.
Linuchs