Einzelnen Beitrag anzeigen

Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#8

Re: Mengenansicht als SQL-Statement

  Alt 19. Mai 2004, 09: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...
  Mit Zitat antworten Zitat