MySQL dokumentation dækker dette emne.
Her er en synopsis. Når du bruger join
eller inner join
, on
tilstand er valgfri. Dette er forskelligt fra ANSI-standarden og forskelligt fra næsten enhver anden database. Effekten er en cross join
. På samme måde kan du bruge en on
klausul med cross join
, som også adskiller sig fra standard SQL.
En krydsforbindelse skaber et kartesisk produkt -- det vil sige enhver mulig kombination af 1 række fra den første tabel og 1 række fra den anden. Krydset for en tabel med tre rækker ('a', 'b' og 'c') og en tabel med fire rækker (f.eks. 1, 2, 3, 4) ville have 12 rækker.
I praksis, hvis du vil lave en cross join, så brug cross join
:
from A cross join B
er meget bedre end:
from A, B
og:
from A join B -- with no on clause
on
klausul er påkrævet for en højre eller venstre ydre joinforbindelse, så diskussionen er ikke relevant for dem.
Hvis du har brug for at forstå de forskellige typer joinforbindelser, så skal du studere relationelle databaser. Stackoverflow er ikke et passende sted for det diskussionsniveau.