Einzelnen Beitrag anzeigen

Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#3

Re: Unterschied zwischen WHERE und ON

  Alt 27. Mai 2010, 11:45
Hi!

Meinst du den Unterschied zwischen

SQL-Code:
SELECT *
FROM table1, table2
WHERE table1.id = table2.id
und

SQL-Code:
SELECT *
FROM table1 JOIN table2 ON table1.id = table2.id
?

Falls ja, dann gibt es im Endeffekt (aufgrund des Anfrageoptimierers der das erste intern quasi in das 2. umwandelt) keinen Unterschied.
Von der Sache her, ist der Unterschied aber riesig. Das erste macht ein Kreuzprodukt der beiden Tabellen und filtert dann nur die raus, die du eigentlich haben willst - im Zwischenschritt hast du also Unmengen Tupel, die du gar nicht willst.


HAVING ist nochmal ne andere Baustelle.
WHERE stellt Bedingungen an einzelne Tupel wohingegen HAVING Bedingungen an ganze Gruppen stellt (daher auch nur mit GROUP BY zu verwenden.


Grüße, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat