• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Join verschachteln

Jokus

Neues Mitglied
Moin!
Ich krieg bei Komplexeren Mysql Querys immer so probleme und hoffe mal ihr findet das Problem =D
Hier der Query
Code:
SELECT `Stufe`.`Stufe`, `Mitglieder`.*
FROM `Mitglieder` 
LEFT JOIN (`Stufe_Mitglieder`,`Stufe`) ON `Stufe_Mitglieder`.`Person_id` = `Mitglieder`.`ID` 
AND 
`Stufe_Mitglieder`.`Person_id` = `Stufe`.`ID`
Vor allem das letzte AND bis ID ist der Haken. Ich würde gerne `Stufe_Mitglieder`.`Person_id` und `Mitglieder`.`ID` verknüpfen. Das ist ja mit Left Join kein Problem da Mitglieder schon die "Haupt-Tabelle" ist. Jetzt kriege ich ja über die Tabelle `Stufe_Mitglieder` die Spalte `Stufe_id`, welche sich wiederum auf `Stufe`.`ID` bezieht. Und in dieser Tabelle `Stufe` will ich dann die Spalte `Stufe` haben. Wie komme ich daran?
 
Uuund fertig =D
Lösung Select in einem Select =D
Code:
SELECT (SELECT `Stufe`.`Stufe` FROM `Stufe` WHERE
`Stufe_Mitglieder`.`Stufe_id` = `Stufe`.`ID`) AS `Stufe`, `Mitglieder`.*
FROM `Mitglieder` 
LEFT JOIN `Stufe_Mitglieder` ON `Stufe_Mitglieder`.`Person_id` = `Mitglieder`.`ID`
 
Das sollte auch ohne subselect gehen.
Du kannst mehrere Joins verknüpfen. Ohne konkrete Struktur und nur nach deiner Beschreibung ist es aber schwer die Abfrage zu erstellen.

In etwa könnte die so aussehen:
Code:
SELECT *
FROM `Mitglieder` 
LEFT JOIN `Stufe_Mitglieder` USING(id) -- wenn ich dich richtig verstanden habe
LEFT JOIN `Stufe` ON`Stufe_Mitglieder`.`Person_id` = `Stufe`.`ID`
Wobei ich nich sicher bin ob der letzte join stimmt, da Stufe.ID und Stufe_Mitglieder.Person_id vermutlich nicht die gleichen ID's sind.
 
Bin nicht der MySQL-Spezialist aber funz das nicht auch so?
Code:
[FONT=monospace][FONT=Tahoma]
[/FONT][/FONT]SELECT
Stufe.Stufe, Mitglieder.*[FONT=monospace]
[/FONT]FROM
Mitglieder,  [FONT=monospace][/FONT]Stufe_Mitglieder, Stufe[FONT=monospace][FONT=Tahoma]
[/FONT][/FONT]WHERE[FONT=monospace] 
[/FONT]Stufe_Mitglieder.Person_id=Mitglieder.ID[FONT=monospace][/FONT]
AND
Stufe_Mitglieder.Person_id=Stufe.ID
 

Neueste Beiträge

Zurück
Oben