子查询而不是列名称与内部联接

时间:2014-02-06 21:33:07

标签: subquery

我对SQL很新,并且开始运行子查询,如下面的查询:

SELECT  C.CustomerID
,       C.Name
,       ( Select  PhoneNumber
          FROM    PhoneNumberTable P
          WHERE   P.CustomerID = C.CustomerID ) AS "PhoneNumber"
FROM    CustomerTable C

使用以下连接与此查询进行比较:

SELECT  C.CustomerID
,       C.Name
,       P.PhoneNumber
FROM    CustomerTable C

JOIN    PhoneNumberTable P
ON  P.customerID = C.customerID

在效率/速度方面有区别吗?我正在使用的SQL有几个子查询,如上所示(没有JOIN),很难阅读。

1 个答案:

答案 0 :(得分:0)

加入我的经验往往更快,但有时你需要一个子查询。

你还应该调查CTE他们非常有用并且更容易(在我看来)管理

在您的具体情况下,我会使用连接...因为您正在尝试将两个表连接在一起。