Нет, между этими двумя нет различий, потому что при логической обработке запроса WHERE
всегда будет идти сразу после предложения фильтра (ON), в ваших примерах у вас будет:
- Декартово произведение (количество строк из таблицы A x количество строк из таблицы B)
- Фильтр (ON)
- Где.
Ваши примеры приведены в ANSI SQL-92, вы также можете написать запрос с использованием стандарта ANSI SQL-89 следующим образом:
SELECT blah FROM TableA a,TableB b
WHERE b.id = a.id AND b.deleted = 0 AND a.field = 5
ЭТО ИСТИННО ДЛЯ ВНУТРЕННИХ СОЕДИНЕНИЙ, С НАРУЖНЫМИ СОЕДИНЕНИЯМИ ПОДОБНО, НО НЕ ТОЛЬКО