Ils ne sont pas la même chose.
Tenir compte de ces requêtes:
SELECT *
FROM Orders
LEFT JOIN OrderLines ON OrderLines.OrderID=Orders.ID
WHERE Orders.ID = 12345
et
SELECT *
FROM Orders
LEFT JOIN OrderLines ON OrderLines.OrderID=Orders.ID AND Orders.ID=12345
La première sera de retour à un ordre et ses lignes, le cas échéant, par ordre de numéro 12345. La deuxième sera de retour tous les ordres, mais seulement afin 12345 aura toutes les lignes associées.
Avec une JOINTURE INTERNE, les clauses sont effectivement équivalent. Cependant, juste parce qu'ils sont fonctionnellement le même, dans ce qu'ils produisent les mêmes résultats, ne signifie pas que les deux types de clauses ont la même signification sémantique.