Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
Delphi 8 Architect
|
Re: Mengenansicht als SQL-Statement
19. Mai 2004, 10:01
SQL-Code:
SELECT A.*
FROM Auftrag A
LEFT OUTER JOIN Position B
ON B.idAuftrag = A.idAuftrag
WHERE B.idPosition IS NULL
Code:
Erläuterung - DB-Engine geht eventuell in anderer Weise vor,
aber für Dich zum nachvollziehen:
1. Schritt: erzeugt Tabelle mit Allen Spalten aus beiden Tabellen
2. Schritt: füllt Tabelle mit allen Zeilen aus Auftrag
3. Schritt: wenn Position mit gleicher idAuftrag vorhanden vorhanden,
werden die entsprechenden Zeilen mit den Werten aus Position
ergänzt - alle anderen "Positionsspalten" bleiben leer (NULL)
4. Schritt: beschränkt Ergebnis auf die Zeilen, in denen die
"Positionsspalten" leer sind (das ist Deine Wunschmenge)
5. Schritt: beschränkt Ergebnisspalten auf die, welche aus Tabelle
Auftrag stammen (A.*)
Gruß
Edit: Ich sehe gerade, dass Sakura schon nahe dran war - nur fehlt das "outer" in seinem Join - ohne "outer" kommen nur die Schnittmengenzeilen und nicht alle Positionszeilen in das Ergebnis...
Tim Leuschner Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
|