代码之家  ›  专栏  ›  技术社区  ›  Zahra

使用无法使用连接重新写入的子查询编写的查询示例?

  •  0
  • Zahra  · 技术社区  · 8 年前

    in this SO post .

    他们的大多数查询可以简化为以下模式:

    SELECT T1.a, (SELECT T2.b FROM T2 WHERE T2.a = T1.a )
    FROM T1
    

    可以重写为:

    SELECT T1.a, T2.b
    FROM T1 
    LEFT JOIN T2
    ON T1.a = T2.a
    

    能给我一个很棒的SOer吗 例如,可以使用子查询来实现无法使用连接重新编写的算法 ?

    背景故事:我发现连接更容易阅读和管理。使用子查询编写的sql查询让我(潜意识)发疯!我想找个理由不那么恨他们!

    1 回复  |  直到 8 年前
        1
  •  1
  •   Gordon Linoff    8 年前

    虽然可以在不使用子查询的情况下构造等价查询,但它比仅使用子查询更复杂 join :

    SELECT T1.a, (SELECT SUM(T2.b) FROM T2 WHERE T2.a <= T1.a )
    FROM T1;