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.