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.