verwendetes Datenbanksystem: <MySQL>
Hallo,
ich habe gerade ein kleines Abfrageproblem. 3 Tabellen müssel (sollten) in die Abfrage einbezogen werden. Tabelle 1 sind Verträge, 2 sind Mieter und 3 sind Einheiten.
Nicht jede Einheit hat einen Mieter/Vertrag aber alle Einheiten sollen aufgelistet werden und der zugehörige Mieter.
Ergebnis in etwa so
Vertrag.ID---Einheit.Name---Mieter.Name
1--------------01-----------------name1
null-----------02-----------------null
2--------------03---------------- name2
SELECT Vertraege.ID, Einheiten.Name
FROM
Einheiten
LEFT JOIN Vertraege ON Einheiten.ID = Vertraege.Einheiten_ID
bringt mir die eine hälfte ein, aber bislang konnte ich den dazugehörigen Mieter.Name nicht in die Tabelle einbringen.
SELECT Vertraege.ID, Einheiten.Name, Mieter.Name
FROM
Einheiten
LEFT JOIN Vertraege, Mieter ON Einheiten.ID = Vertraege.Einheiten_ID
bringt eine Fehlermeldung: 1064 - Anfrage ergibt keinen Sinn
Ich hoffe ich habe mein Problem verständlich formuliert
Danke in Vorraus
"Man muß die Dinge so einfach wie möglich machen. Aber nicht einfacher." Albert Einstein
Du mußt die JOINs einzeln nacheinander auflisten:
SELECT Vertraege.ID, Einheiten.Name, Mieter.Name
FROM Einheiten
LEFT JOIN Vertraege ON Einheiten.ID = Vertraege.Einheiten_ID
LEFT JOIN Mieter ON Einheiten.Mieter_ID = Mieter.Mieter_ID -- oder wie auch immer die Spalten heißen
Ja Danke, genau das war's
Ich dachte ein zweites LEFT JOIN würde sich auf das die 2. Tabelle beziehen und nicht auf die 1. 🤔 und somit nicht funktionieren. Bzw. ich verstehe dies grundlegen falsch und sollte mit das mal genauer anschauen 😁
"Man muß die Dinge so einfach wie möglich machen. Aber nicht einfacher." Albert Einstein