在SQl查询中哪个更好的子查询或JOIN?

时间:2011-10-27 06:19:03

标签: mysql sql sql-server

在这种情况下,任何人都可以建议哪一个更好:

1

SELECT
    COLUMN1, 
        (SELECT 
            COLUMN2 
        FROM
            TABLE2
        WHERE 
            <some condition>) AS COLUMN2
FROM TABLE 1 

2:

SELECT
    T1.COLUMN1,
    T2.COLUMN2
FROM
    TABLE1 T1
INNER JOIN 
    TABLE2 T2 ON <some condition>

4 个答案:

答案 0 :(得分:4)

有几个“更好”的轴......

  • 更好的表现
  • 更好的可读性
  • 更好的可维护性
  • 更好的灵活性 ....

    所以,

    1. 测试并找出(检查计划可能相同)
    2. 在旁观者的眼中,查询是等价的,我更喜欢加入
    3. 取决于您的员工
    4. 在这种情况下似乎不适用 ...

更好的往往只是权衡...

答案 1 :(得分:3)

使用JOIN。

Subqueries vs joins

答案 2 :(得分:2)

  

哪个更好?

这不是更好的问题,因为它们是完全不同的查询。

如果您的子查询返回超过1行,您的第一个查询将会出错。

答案 3 :(得分:1)