下面的两个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
Run Code Online (Sandbox Code Playgroud)
我已经看到这两种风格在不同的公司都被用作标准.从我所看到的,第二个是大多数人在网上推荐的.除了风格之外,还有其他真正的理由吗?使用内部联接有时会有更好的表现吗?
我注意到Ingres和Oracle开发人员倾向于使用第一种风格,而Microsoft SQL Server用户倾向于使用第二种风格,但这可能只是巧合.
感谢您的任何见解,我一直想知道这一点.
编辑:当我使用不正确的terminlogy时,我已经从"SQL内部连接与笛卡尔产品"中更改了标题.感谢到目前为止的所有回复.
我是 SQL 菜鸟,我有 2 个查询:
SELECT
A.COLUMN1,B.COLUMN2, C.COLUMN3
FROM
TB_ITEM A,
TB_ITEM_CAT B,
TB_ITEM_SUBCAT C
WHERE
A.COLUMN1 = B.COLUMN1
AND A.COLUMN1 = c.COLUMN1
Run Code Online (Sandbox Code Playgroud)
和
SELECT
A.COLUMN1,B.COLUMN2, C.COLUMN3
FROM
TB_ITEM A
INNER JOIN TB_ITEM_CAT B on A.COLUMN1 = B.COLUMN1
INNER JOIN TB_ITEM_SUBCAT C on A.COLUMN1 = C.COLUMN1
Run Code Online (Sandbox Code Playgroud)
在第一个查询中,我们没有 INNER JOINS,并从 3 个表中进行选择。在第二个中,我们使用 INNER JOINS 进行相同的查询,并从 3 个表中进行选择。
他们应该显示相同的结果?这些查询之间有什么区别?