MySQL dokumentation täcker detta ämne.
Här är en synopsis. När du använder join
eller inner join
, on
skick är valfritt. Detta skiljer sig från ANSI-standarden och skiljer sig från nästan vilken annan databas som helst. Effekten är en cross join
. På samma sätt kan du använda en on
sats med cross join
, som också skiljer sig från standard SQL.
En korskoppling skapar en kartesisk produkt -- det vill säga alla möjliga kombinationer av 1 rad från den första tabellen och 1 rad från den andra. Korskopplingen för en tabell med tre rader ('a', 'b' och 'c') och en tabell med fyra rader (säg 1, 2, 3, 4) skulle ha 12 rader.
I praktiken, om du vill göra en cross join, använd sedan cross join
:
from A cross join B
är mycket bättre än:
from A, B
och:
from A join B -- with no on clause
on
klausul krävs för en höger eller vänster yttre sammanfogning, så diskussionen är inte relevant för dem.
Om du behöver förstå de olika typerna av kopplingar måste du studera relationsdatabaser. Stackoverflow är inte en lämplig plats för den diskussionsnivån.