funktioniert Ich habe dieses Beispiel für mein Problem: http://sqlfiddle.com/#!9/0cc41/1/0MYSQL LEFT JOIN Bedingung nicht
Beschreibung: Es gibt drei Tabellen (Ereignisse, Personen und Benutzer). Die Tabelle Personen verbindet Ereignisse und Benutzer. personals.type_id ist die events.id und persons.user_id ist user.id. Ich habe zwei Ereignisse (ID 1 und 2) erstellt. Für jede Veranstaltung gibt es einen Eintrag persönlich.
My Sql:
SELECT events.*,
coalesce(part_person.Accept_Participants_LJ, 0) AS Accept_Participants
FROM events
LEFT JOIN (
SELECT GROUP_CONCAT(CONCAT(part_user.forname, ' ', part_user.surname) SEPARATOR ', ') AS Accept_Participants_LJ,
part_person.type_id
FROM persons AS part_person
LEFT JOIN user AS part_user ON part_user.id = part_person.user_id
WHERE part_person.type = 'event_participant'
) part_person ON events.id = part_person.type_id
GROUP BY events.id
Meine Erwartung war:
------------------------
|id|Accept_Participants|
------------------------
|1 | Carl Habicht |
------------------------
|2 | Peter Zwegert |
------------------------
Wie Sie sehen können, ist das Ergebnis:
----------------------------------
|id| Accept_Participants |
----------------------------------
|1 | Carl Habicht, Peter Zwegert|
----------------------------------
|2 | 0 |
----------------------------------
Es scheint, dass er das ignoriert ON- Zustand des linken Joins.
Aber wo ist mein Fehler?