Thema: Delphi SELECT in SELECT

Einzelnen Beitrag anzeigen

Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#9

Re: SELECT in SELECT

  Alt 15. Mär 2005, 09:13
[quote="Robert_G@Jim
Warum sollte sich eine DB den Query plan kaputtmachen um dir die Ergebnisse des SELECT während des Filtern zu präsentieren?
Die SELECT Clause läuft natürlich immer NACH der WHERE Clause. Alles andere wäre Blödsinn. [/quote]Damit man selber weniger arbeit hat Aber daran hab ich nicht wirklich gedacht, klingt für mich aber plausibel ...

Delphi-Quellcode:
SELECT A.ID, (SELECT SUM(L.MENGE) FROM LAGER L WHERE L.ID = A.ID) AS LAGER_MENGE
FROM ARTIKEL A
WHERE (SELECT SUM(L.MENGE) FROM LAGER L WHERE L.ID = A.ID) > 0
Aber mal ehrlich. Für mich sieht diese Variante danach aus, dass es er die Unterabfrage zweimal ausführt berechnet. Wenn ja, warum kann er dann nicht damit arbeiten:

Delphi-Quellcode:
SELECT A.ID, (SELECT SUM(L.MENGE) FROM LAGER L WHERE L.ID = A.ID) AS LAGER_MENGE
FROM ARTIKEL A
WHERE LAGER_MENGE > 0
Und falls er es doch optimiert und sich die Ergebnisse der Unterabfrage speichert, verstehe ich noch weniger, warum er die kurze Variante nicht versteht.

Bei Erstellung des Query Plan steckt bereits so viel Logik und Tricks hinter, warum nicht dabei ... Naja. Das werden nur die Hersteller wissen.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat