可能重复:
Is it better to do an equi join in the from clause or where clause
我是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
和
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
在第一个查询中,我们没有INNER JOINS,并从3个表中选择。 在第二个中,我们使用INNER JOINS进行相同的查询,并从3个表中进行选择。
他们应该显示相同的结果? 这些查询之间有什么区别?
答案 0 :(得分:4)
它们在语义上是相同的。一个不错的优化器会认识到这是一个同样有效的计划。经验丰富的SQL编码器也会认识到这一点;)
Joe Celko引用,“至少有七种方法可以编写查询;只有两种方法值得 使用“。
答案 1 :(得分:1)
第一个查询 有内部联接。在FROM子句中,逗号是INNER JOIN的简写。
答案 2 :(得分:0)
阱,
我认为结果是一样的。但是,当您的SQL非常大时,使用INNER JOIN将帮助您组织查询。