Johnny Bee.: Normalisierung und Abfrage (MySQL)

Beitrag lesen

Hallo Vinzenz,

das hat mich ja richtig nach vorne gebracht. Endlich hab ich die Joins kapiert - und dabei ist das eigentlich gar nicht so kompliziert. Ich bin auch dem Hinweis von Frank nachgegangen und habe mir GROUP_CONCAT angeschaut. Damit habe ich genau das erreicht, was ich haben wollte.

Nun gibt es noch eine Feinheit, die mich zwar nicht sehr stört, aber die ich trotzdem gerne verstehen/beheben würde. Mein Query ist folgender:

  
SELECT  
    t.id,  
    t.datum,  
    t.referenz,  
    t.preis,  
    tb.id,  
    GROUP_CONCAT( distinct(b.beschreibung) ) Besonderheiten,  
FROM  
    tour t  
LEFT OUTER JOIN  
    tour_besonderheit tb  
ON  
    t.id = tb.tour_id  
LEFT OUTER JOIN  
    besonderheit b  
ON  
    b.id = tb.besonderheit_id  
WHERE t.firma_id = 4  
GROUP BY  
    t.id  
ORDER BY  
    t.id  

Wenn ich nun alle Touren mit einer bestimmten Besonderheit anzeigen lassen möchte, erweitere ich die WHERE-Bedingung um ein

AND b.id = 4

Das klappt auch, wobei GROUP_CONCAT dann nur die ausgewählte Besonderheit aufzählt. Schöner wäre, wenn in der Auflistung trotzdem alle Besonderheiten aufgezählt wären. Hast Du da 'nen Tipp für mich?

Besten Dank
JOhnnY