Hallo,
ich habe drei Tabellen:
1. airports - Spalten: id, name
2. frequencies - Spalten: id, airport, name, frequency
3. runways - Spalten: id, airport, length
Zu jedem "airports"-Datensatz gibt es beliebig viele Datensätze in "frequencies" bzw. "runways".
Alle Datensätze der Tabellen "frequencies" und "runways" sollen in einer Ergebnis-Zeile stehen:
z.B.: München Erding - Freq: TWR: 120.500; ATIS: 123.120; TWR: 118.700 - Runways: 4000m; 4000m
Die Abfrage
SELECT
a.*,
GROUP_CONCAT(f.`name`, ': ', f.`frequency` SEPARATOR '; ') AS frequency
FROM airports AS a
LEFT OUTER JOIN frequencies AS f ON a.`id` = f.`airport`
GROUP BY a.`name`
führt zum gewünschten Ergebnis. Allerdings fehlt hierbei noch die Tabelle "runways". Wenn ich diese jetzt mit einem weiteren Join anhänge:
SELECT
a.*,
GROUP_CONCAT(f.`name`, ': ', f.`frequency` SEPARATOR '; ') AS frequency
GROUP_CONCAT(r.`length` SEPARATOR '; ') AS frequency
FROM airports AS a
LEFT OUTER JOIN frequencies AS f ON a.`id` = f.`airport`
LEFT OUTER JOIN runways AS r ON a.`id` = r.`airport`
GROUP BY a.`name`
sind alle Einträge der "frequencies"-Tabelle doppelt vorhanden, was natürlich nicht gewünscht ist.
Kann mir jemand helfen?
Vielen Danke,
delirium