delirium: Meherer JOINS und doppelte Ergebnisse bei GROUP_CONCAT

Beitrag lesen

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