Хотя вы получаете одинаковые результаты от обоих объединений, важно понимать, что левое соединение отличается от внутреннего объединения.
При левом соединении будут взяты все строки из левой таблицы, даже если в правой таблице нет совпадений.
SQL LEFT JOIN vs. SQL INNER JOIN
Таким образом, ваши данные просто создаются способом, идентичным для двух разных объединений.
SELECT *
FROM SomeTable ST
JOIN BigTable BT ON BT.SomeID = ST.SomeID
AND BT.Something = ST.Something
AND BT.AnotherValue = '123'
Как насчет этого:
SELECT
*
FROM
SomeTable
INNER JOIN
BigTable
ON SomeTable.PreferedPrimaryKey = BigTable.PreferAForeignKey
AND SomeTable.SomethingThatIsIndexedAndPreferableNumeric = BigTable.SomethingThatIsIndexedAndPreferableNumeric
WHERE
BigTable.AnotherValue = '123'
Проверьте ваши индексы и убедитесь, что ваши критерии для второй части объединения не являются неиндексированными символьными строками.