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

Clausola INNER JOIN ON vs WHERE

INNER JOIN è la sintassi ANSI che dovresti usare.

È generalmente considerato più leggibile, specialmente quando ti unisci a molti tavoli.

Può anche essere facilmente sostituito con un OUTER JOIN ogni volta che se ne presenta la necessità.

Il WHERE la sintassi è più orientata al modello relazionale.

Un risultato di due tabelle JOIN ed è un prodotto cartesiano delle tabelle a cui viene applicato un filtro che seleziona solo le righe con colonne di unione corrispondenti.

È più facile vederlo con WHERE sintassi.

Come per il tuo esempio, in MySQL (e in SQL in generale) queste due query sono sinonimi.

Inoltre, nota che MySQL ha anche un STRAIGHT_JOIN clausola.

Usando questa clausola, puoi controllare il JOIN ordine:quale tabella viene scansionata nel ciclo esterno e quale si trova nel ciclo interno.

Non puoi controllarlo in MySQL usando WHERE sintassi.