(Moderator)
Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
Delphi 2007 Enterprise
|
Re: Mit JOIN suchen über merhere Tabellen...klappt nicht
2. Jan 2010, 10:19
Dadurch, das Du VORGANG mit PROJEKT per JOIN verknüpfst, eliminierst du deine fehlenden Kandidaten. Verwende auch hier ein LEFT JOIN.
Hier was zum Merken:
Zwei Tabellen: Paare (also: Eltern) und Kinder. Es gibt kinderlose Paare, Paare mit Kindern und Waisenkinder.
1. Alle Paare und falls sie Kinder haben auch Diese: SELECT * FROM Paare LEFT JOIN Kinder
2. Nur Paare mit Kindern: ... Paare JOIN Kinder
3. Alle Kinder und falls sie Eltern haben auch Diese: ... Paare RIGHT JOIN Kinder
4. Nur Paare ohne Kinder: ... Paare LEFT JOIN Kinder WHERE Kinder.Kind IS NULL
5. Nur Waisenkinder: ... Paare RIGHT JOIN Kinder WHERE Paare.Paar IS NULL
(Die ON - Klausel (Paare JOIN Kinder ON Paar.paarID = Kinder.paarID) habe ich weggelassen.
Anmerkungen:
A LEFT JOIN B ist das Gleiche wie B RIGHT JOIN A
(2) kann man auch so ausdrücken: Paare LEFT JOIN Kinder WHERE Kinder.Kind is not null. Auf Deutsch bedeutet das:
"Alle Paare, und falls sie Kinder haben, auch Diese WOBEI es ein Kind geben muss"
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
|