Eh bien, ce que vous appelez "équivalent" n'est pas un équivalent pour les jointures externes. Prenons l'exemple de la jointure gauche.
Condition dans JOIN :
SELECT * FROM Customers c
LEFT JOIN CustomerAccounts ca ON ca.CustomerID = c.CustomerID AND c.State = 'NY'
LEFT JOIN Accounts a ON ca.AccountID = a.AccountID AND a.Status = 1
vs OÙ :
SELECT * FROM Customers c
LEFT JOIN CustomerAccounts ca ON ca.CustomerID = c.CustomerID
LEFT JOIN Accounts a ON ca.AccountID = a.AccountID
WHERE c.State = 'NY'
AND a.Status = 1
Mettre les conditions dans la clause WHERE rend effectivement les jointures INNER se joint, car la clause WHERE est un filtre de ligne qui est appliqué après les jointures ont été faites.