два бита 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
Я видел оба стиля, используемые в разных компаниях как стандартные. Из того, что я видел, второе - то, что большинство людей рекомендует онлайн. Есть ли реальная причина для этого, кроме стиля? Может ли использование внутреннего соединения иногда иметь лучшую производительность?
Я заметил, что разработчики Ingres и Oracle, как правило, используют первый стиль, тогда как пользователи Microsoft SQL Server обычно используют второй, но это может быть просто совпадением.
Спасибо за понимание, я некоторое время размышлял об этом.
Редактировать: я изменил название с «Внутреннее соединение SQL по сравнению с декартовым продуктом», поскольку использовал неверную терминологию. Спасибо за все ответы до сих пор.