LEFT JOIN und GROUP_CONCAT

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • LEFT JOIN und GROUP_CONCAT

    Hallo zusammen,

    in meiner DB gibt es Buchungen und Einschränkungen. Jeder Buchung können beliebig viele Einschränkungen zugewiesen werden und jeder Zuweisung "ja" oder "nein", also z.B. "Buchung B hat die Einschränkung E1 = ja, E2 = nein, E5 = ja"

    Jetzt möchte ich in einer Übersicht darstellen, welche Buchung welche Einschränkungen hat. Das Problem hierbei ist, dass nicht jeder Buchung alle Einschränkungen zugewiesen werden. Ich habe also z.B. 6 Einschränkungen und für jede Buchung das Ergebnis

    B1 => E1:ja, E3:nein, E6:ja
    B2 => E2:nein, E3: ja, E4: ja

    Jetzt werden die Einschränkungen in der Tabelle logischerweise falsch angezeigt. Nützlich wäre hier ein Left join. Das Problem ist, dass ich ein GROUP_CONCAT drin habe und ich nicht weiß, wo das bei einem Left Join reinmuss.

    momentan habe ich folgendes Statement:

    PHP-Code:
    SELECT REPLACE(GROUP_CONCAT(Typ ORDER BY einschraenkungen.Einschraenkung SEPARATOR ';'),'1;0','2')
    AS 
    Typ FROM einschraenkungeneinschraenkungen2buchungen
    WHERE einschraenkungen2buchungen
    .id_buchungen AND
    einschraenkungen2buchungen.id_einschraenkungen 
    einschraenkungen.id_einschraenkungen GROUP BY
     einschraenkungen
    .id_einschraenkungen 
    Typ enthält ja/nein. Das replace muss rein, da hier verschiedene Bilder angezeigt werden: 0.gif, 1.gif und 2.gif. Wenn Eine Buchung bei einer Einschränkung ja und nein hat, wird das per GROUP_CONCAT zusammengefasst und das 1;0 für das Bild durch eine 2 ersetzt.

    Ich hoffe, ich habe das Problem verständlich beschrieben.

    DANKE!
    Zuletzt geändert von strauberry; 08.02.2006, 14:21.

  • #2
    Man kann die Zusammenfassung in den [col] Bereich schreiben, das funktioniert:

    PHP-Code:
    SELECT *, GROUP_CONCAT(einschraenkungen2buchungen.Typ SEPARATOR ';') AS 
    Typ FROM einschraenkungen LEFT JOIN einschraenkungen2buchungen ON 
    einschraenkungen2buchungen
    .id_buchungen AND 
    einschraenkungen2buchungen.id_einschraenkungen 
    einschraenkungen.id_einschraenkungen GROUP BY 
    einschraenkungen
    .id_einschraenkungen 

    Kommentar

    Lädt...
    X