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.