Я уже получил ответы от некоторых из моих коллег, но если они не разместят его здесь, я сам добавлю ответ.
В обоих этих примерах предполагается, что предикатсравнивает столбец в «правой» таблице со скалярным значением.
Производительность
Похоже, что если предикат находится на JOIN
, то "Правая таблица отфильтрована заранее.Если предикат является частью предложения WHERE
, тогда все результаты возвращаются и фильтруются один раз в конце перед возвратом набора результатов.
Возвращенные данные
, если предикатчасть предложения WHERE
, то в ситуации, когда «правильное» значение равно нулю (т. е. нет присоединяющейся строки), тогда вся строка не будет возвращена в конечном наборе результатов, поскольку предикатсравнивает значение с null
и поэтому возвращает false.