INNER JOIN
to składnia ANSI, której powinieneś używać.
Ogólnie uważa się, że jest bardziej czytelny, zwłaszcza gdy dołączasz do wielu stołów.
Można go również łatwo zastąpić OUTER JOIN
kiedy tylko zajdzie taka potrzeba.
WHERE
składnia jest bardziej zorientowana na model relacyjny.
Wynik dwóch tabel JOIN
ed jest iloczynem kartezjańskim tabel, do których stosowany jest filtr, który wybiera tylko te wiersze, które pasują do łączących się kolumn.
Łatwiej to zobaczyć za pomocą WHERE
składnia.
Jeśli chodzi o twój przykład, w MySQL (i ogólnie w SQL) te dwa zapytania są synonimami.
Pamiętaj też, że MySQL ma również STRAIGHT_JOIN
klauzula.
Używając tej klauzuli, możesz kontrolować JOIN
kolejność:która tabela jest skanowana w zewnętrznej pętli, a która w wewnętrznej pętli.
Nie możesz tego kontrolować w MySQL za pomocą WHERE
składnia.