I MySQL skriver du JOIN
okvalificerad innebär INNER JOIN
. Med andra ord INNER
i INNER JOIN
är valfritt. INNER
och CROSS
är synonymer i MySQL. För tydlighetens skull skriver jag JOIN
eller INNER JOIN
om jag har ett anslutningsvillkor och CROSS JOIN
om jag inte har ett tillstånd.
Den tillåtna syntaxen för joins beskrivs i dokumentationen .
Effekten är densamma, men historien bakom dem är annorlunda. Kommasyntaxen är från ANSI-89-standarden. Det finns dock ett antal problem med denna syntax så i ANSI-92-standarden introducerades JOIN-nyckelordet.
Jag rekommenderar starkt att du alltid använd JOIN-syntax istället för kommatecken.
T1 JOIN T2 ON ...
är mer läsbar änT1, T2 WHERE ...
.- Det är mer underhållbart eftersom tabellrelationerna och filtren är tydligt definierade snarare än blandade.
- JOIN-syntaxen är lättare att konvertera till OUTER JOIN än kommasyntaxen.
- Att blanda kommatecken och JOIN-syntaxen i samma programsats kan ge konstiga fel på grund av prioriteringsreglerna.
- Det är mindre sannolikt att man av misstag skapar en kartesisk produkt när JOIN-syntaxen används på grund av en glömd join-sats, eftersom join-satserna är skrivna bredvid joins och det är lätt att se om en saknas.