два бита SQL ниже получают одинаковый результат
SELECT c.name, o.product
FROM customer c, order o
WHERE c.id = o.cust_id
AND o.value = 150
SELECT c.name, o.product
FROM customer c
INNER JOIN order o on c.id = o.cust_id
WHERE o.value = 150
Я видел оба стиля, используемые в качестве стандарта в разных компаниях. Из того, что я видел, второй - это то, что большинство людей рекомендует в Интернете. Есть ли настоящая причина для этого, кроме стиля? Часто ли использование Inner Join имеет лучшую производительность?
Я заметил, что разработчики Ingres и Oracle, как правило, используют первый стиль, тогда как пользователи Microsoft SQL Server имеют тенденцию использовать второй, но это может быть просто совпадением.
Спасибо за любую проницательность, я задавался вопросом об этом некоторое время.
Изменить: я изменил название из "SQL Inner Join to Cartesian Product", поскольку использовал неправильную терминологию. Спасибо за все ответы.