Для внутренних объединений я на самом деле не заметил разницы (но, как и во всех настройках производительности, вам нужно проверить свою базу данных в ваших условиях).
Однако, когда вы ставите условие, это имеет огромное значение, если вы используете левое или правое соединение. Например, рассмотрим эти два запроса:
SELECT *
FROM dbo.Customers AS CUS
LEFT JOIN dbo.Orders AS ORD
ON CUS.CustomerID = ORD.CustomerID
WHERE ORD.OrderDate >'20090515'
SELECT *
FROM dbo.Customers AS CUS
LEFT JOIN dbo.Orders AS ORD
ON CUS.CustomerID = ORD.CustomerID
AND ORD.OrderDate >'20090515'
Первая выдаст вам только те записи, чей заказ датирован позднее 15 мая 2009 года, и тем самым преобразует левое соединение во внутреннее соединение. Второй даст эти записи плюс любые клиенты без заказов. Набор результатов сильно отличается в зависимости от того, где вы поставили условие. (Выберите *, если только в качестве примера, вы не должны, конечно, использовать в производственном коде.) Исключением является случай, когда вы хотите видеть только записи в одной таблице, но не в другой. Затем вы используете условие where для условия, а не для соединения.
SELECT *
FROM dbo.Customers AS CUS
LEFT JOIN dbo.Orders AS ORD
ON CUS.CustomerID = ORD.CustomerID
WHERE ORD.OrderID is null