Нет никакой разницы для механизма запросов sql.
Для удобства чтения последнее намного легче читать, если вы используете разрывы строк и отступы.
Для ВНУТРЕННИХ СОЕДИНЕНИЙ не имеет значения, если вы поместите «фильтры» и «объединения» в предложение «ON» или «WHERE», оптимизатор запросов должен решить, что делать в первую очередь (он может сначала выбрать фильтр, затем объединение или наоборот
Однако для ВНЕШНИХ СОЕДИНЕНИЙ есть разница, и иногда вы захотите поместить условие в предложение ON, иногда в WHERE. Помещение условия в предложение WHERE для OUTER JOIN может превратить его в INNER JOIN (из-за того, как работают NULL)
Например, проверьте читаемость между двумя следующими образцами:
SELECT c.customer_no, o.order_no, a.article_no, r.price
FROM customer c, order o, orderrow r, article a
WHERE o.customer_id = c.customer_id
AND r.order_id = o.order_id
AND a.article_id = r.article_id
AND o.orderdate >= '2003-01-01'
AND o.orderdate < '2004-01-01'
AND c.customer_name LIKE 'A%'
ORDER BY r.price DESC
против
SELECT c.customer_no, o.order_no, a.article_no, r.price
FROM customer c
INNER JOIN order o
ON o.customer_id = c.customer_id
AND o.orderdate >= '2003-01-01'
AND o.orderdate < '2004-01-01'
INNER JOIN orderrow r
ON r.order_id = o.order_id
INNER JOIN article a
ON a.article_id = r.article_id
WHERE c.customer_name LIKE 'A%'
ORDER BY r.price DESC