I MySQL skriver du JOIN
ukvalificeret indebærer INNER JOIN
. Med andre ord den INNER
i INNER JOIN
er valgfri. INNER
og CROSS
er synonymer i MySQL. For klarhedens skyld skriver jeg JOIN
eller INNER JOIN
hvis jeg har en join-betingelse og CROSS JOIN
hvis jeg ikke har en betingelse.
Den tilladte syntaks for joins er beskrevet i dokumentationen .
Effekten er den samme, men historien bag dem er anderledes. Kommasyntaksen er fra ANSI-89-standarden. Der er dog en række problemer med denne syntaks, så i ANSI-92-standarden blev JOIN-nøgleordet introduceret.
Jeg vil kraftigt anbefale, at du altid brug JOIN-syntaksen i stedet for kommaet.
T1 JOIN T2 ON ...
er mere læsbar endT1, T2 WHERE ...
.- Det er mere vedligeholdeligt, fordi tabelrelationerne og filtrene er klart definerede i stedet for at blive blandet sammen.
- JOIN-syntaksen er lettere at konvertere til OUTER JOIN end kommasyntaksen.
- At blande komma- og JOIN-syntaksen i den samme sætning kan give mærkelige fejl på grund af forrangsreglerne.
- Det er mindre sandsynligt, at du ved et uheld opretter et kartesisk produkt, når du bruger JOIN-syntaksen, på grund af en glemt join-klausul, fordi join-sætningerne er skrevet ved siden af joins, og det er let at se, om der mangler en.