Als SQL-Programmierer steht man häufig vor der Frage, was eine bessere Performance hat, ein schwieriger zu lesender und verstehender JOIN oder eine entsprechende WHERE-Klausel. Als Beispiel seien hier zwei verschiedene Wege zu einer Abfrage gezeigt, mit der alle Kunden ausgewählt werden, bei denen die Kundennummer und der Typ in den beiden Tabellen kunden und kunden_tel übereinstimmen und die eine Kundennummer  größer als 1 haben:

SELECT * FROM kunden JOIN kunden_tel
ON (kunden.nr = kunden_tel.kunden_nr AND kunden.typ = kunden_tel.kunden_typ)
WHERE kunden.nr > 1;

 

SELECT * FROM kunden, kunden_tel
WHERE kunden.nr = kunden_tel.kunden_nr
AND kunden.typ = kunden_tel.kunden_typ
AND kunden.nr > 1;

Beide Abfragen wurden auf eine Kundentabelle mit ca. 50.000 Datensätzen und eine Telefontabelle mit ca. 200.000 Einträgen losgelassen, das Resultat für die beiden Varianten war nahezu gleich bei 15,5 Sekunden. Die Variante SELECT mit WHERE war marginal schneller.

Deshalb sollte man überlegen, diese häufiger vorkommende Variante, die auch auf Anhieb von mehr Programmierern verstanden wird, zu wählen. Wenn schon kein nennenswerter Geschwindigkeitsgewinn erzielt werden kann, sollte man die für Andere leichter lesbare Variante nutzen.