Det er det samme, men det er tvetydigt som fanden med det implicitte KRYDS FORBINDES. Brug eksplicitte JOINS.
Hvis du tilslutter dig WHERE-klausulen, så kan resultaterne adskiller sig, fordi sammenføjninger og filtre er blandet sammen.
SELECT ....
FROM apples a
JOIN
bananas b ON ...
JOIN
oranges o ON ...
LEFT JOIN
kiwis k ON k.orange_id = o.id
WHERE (filters only)
Bemærkninger:
- INNER JOINS og CROSS JOINS er kommutative og associative:Rækkefølgen betyder normalt ikke noget.
- YDRE JOINS er ikke, hvilket du har identificeret
- SQL er deklarativ:du fortæller optimeringsværktøjet, hvad du vil have, ikke hvordan det skal gøres. Dette fjerner JOIN-ordreovervejelser (med forbehold for de foregående 2 punkter)