Mysql
 sql >> Base de données >  >> RDS >> Mysql

Clause INNER JOIN ON vs WHERE

INNER JOIN est la syntaxe ANSI que vous devez utiliser.

Il est généralement considéré comme plus lisible, en particulier lorsque vous rejoignez de nombreuses tables.

Il peut également être facilement remplacé par un OUTER JOIN chaque fois qu'un besoin s'en fait sentir.

Le WHERE la syntaxe est plus orientée modèle relationnel.

Un résultat de deux tables JOIN ed est un produit cartésien des tables auxquelles un filtre est appliqué qui sélectionne uniquement les lignes avec les colonnes de jointure correspondantes.

Il est plus facile de voir cela avec le WHERE syntaxe.

Quant à votre exemple, dans MySQL (et dans SQL en général), ces deux requêtes sont synonymes.

Notez également que MySQL a également un STRAIGHT_JOIN clause.

En utilisant cette clause, vous pouvez contrôler le JOIN order :quelle table est analysée dans la boucle externe et laquelle se trouve dans la boucle interne.

Vous ne pouvez pas contrôler cela dans MySQL en utilisant WHERE syntaxe.