【问题标题】:SQL Query with and without inner join [duplicate]带有和不带有内部连接的 SQL 查询 [重复]
【发布时间】:2011-12-05 09:11:25
【问题描述】:

可能重复:
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 个表中进行选择。

它们应该显示相同的结果吗? 这些查询之间有什么区别?

【问题讨论】:

标签: sql sql-server


【解决方案1】:

第一个查询确实有内连接。在 FROM 子句中,逗号是 INNER JOIN 的简写。

【讨论】:

  • 问题是它是否正确加入。
  • 嗯,如果没有逗号?会一样吗?
【解决方案2】:

嗯,

我认为结果是一样的。但是,当您的 SQL 非常大时,使用 INNER JOIN 将帮助您组织查询。

【讨论】:

    【解决方案3】:

    它们在语义上是相同的。一个体面的优化器会认识到这会产生同样有效的计划。有经验的 SQL 编码员也会认识到这一点 ;)

    Joe Celko 引用,“至少有七种编写查询的方法;只有两种值得 使用。”

    【讨论】:

      猜你喜欢
      • 2018-09-15
      • 1970-01-01
      • 2016-06-11
      • 2013-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多