Mysql
 sql >> Database >  >> RDS >> Mysql

Come usare mysql JOIN senza condizione ON?

MySQL documentazione tratta questo argomento.

Ecco una sinossi. Quando usi join o inner join , il on condizione è facoltativa. Questo è diverso dallo standard ANSI e diverso da quasi tutti gli altri database. L'effetto è un cross join . Allo stesso modo, puoi usare un on clausola con cross join , che differisce anche dall'SQL standard.

Un cross join crea un prodotto cartesiano, ovvero ogni possibile combinazione di 1 riga dalla prima tabella e 1 riga dalla seconda. Il cross join per una tabella con tre righe ('a', 'b' e 'c') e una tabella con quattro righe (diciamo 1, 2, 3, 4) avrebbe 12 righe.

In pratica, se vuoi fare un cross join, usa cross join :

from A cross join B

è molto meglio di:

from A, B

e:

from A join B -- with no on clause

Il on la clausola è richiesta per un join esterno destro o sinistro, quindi la discussione non è rilevante per loro.

Se hai bisogno di capire i diversi tipi di join, allora devi studiare un po' sui database relazionali. Stackoverflow non è un luogo appropriato per quel livello di discussione.