Moin!
es ist zwar richtig, dass wahsaga die bedingung in der WHERE klausel übersehen hat, aber was du da schreibst ist auch nicht richtig. ein kreuzprodukt ist keine teufelswerkzeug, sondern kann durchaus gewünscht sein. insofern beherscht jedes dbms ein kreuzprodukt, wenn es den gewünscht ist. un daran gibt es dann auch nichts zu optimieren.
Richtig, aber die Syntax "FROM tab1, tab2 WHERE tab1.id=tab2.id" produziert auch in MySQL eben nicht zuerst ein Kreuzprodukt, und filtert dann (im Gegensatz zu "FROM tab1 JOIN tab2 ON tab1.id=tab2.id"), sondern es wird gleich zu einem entsprechenden JOIN hin optimiert.
Die Lesbarkeit solcher Statements ist hingegen deutlich eingeschränkt, weil man im WHERE eine Mischung aus Join-bedingten Bedingungen und abfragebedingten Bedingungen hat. Eine Trennung, wie sie mit der JOIN-Syntax erfolgt, ist deutlich verständlicher.
- Sven Rautenberg
"Love your nation - respect the others."