Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Cláusula INNER JOIN ON vs WHERE


INNER JOIN é a sintaxe ANSI que você deve usar.

Geralmente é considerado mais legível, especialmente quando você junta muitas tabelas.

Ele também pode ser facilmente substituído por um OUTER JOIN sempre que houver necessidade.

O WHERE sintaxe é mais orientada para o modelo relacional.

Um resultado de duas tabelas JOIN ed é um produto cartesiano das tabelas às quais é aplicado um filtro que seleciona apenas as linhas com correspondência de colunas de junção.

É mais fácil ver isso com o WHERE sintaxe.

Quanto ao seu exemplo, no MySQL (e no SQL em geral) essas duas consultas são sinônimos.

Além disso, observe que o MySQL também possui um STRAIGHT_JOIN cláusula.

Usando esta cláusula, você pode controlar o JOIN ordem:qual tabela é escaneada no loop externo e qual está no loop interno.

Você não pode controlar isso no MySQL usando WHERE sintaxe.