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

TSQL左连接,带有多个右行

  •  2
  • Spence  · 技术社区  · 16 年前

    Select ColA, ColB, ColC 
    from T
    Left Outer Join 
       (Select ColA, ColB, ColC 
       from T--CLARIFIED, this is a self join.
       Order by TopColumn Desc) AS OrderedT(ColA, ColB, ColC) 
       On T.ColA = OrderedT.ColA
    

    3 回复  |  直到 16 年前
        1
  •  4
  •   polyglot    16 年前

    我相信你需要这个。..

    select T.ColA, T.ColB, T.ColC 
    from T
    inner join
       (select ColA, max(TopColumn) MaxTopColumn
       from T
       group by ColA) OrderedTable
       on T.ColA = OrderedTable.ColA and T.TopColumn = OrderedTable.MaxTopColumn
    

    版本表的常见查询需要与max查询进行内部连接。

    表名“table”无济于事,我将其重命名为t。

        2
  •  2
  •   David M    16 年前

        3
  •  1
  •   Mitch Wheat    16 年前

    LEFT JOIN返回满足任何WHERE条件的所有左侧行,而不管右侧(在连接键上)是否有匹配的行。如果联接键不匹配,右表中的列将返回NULL。

    推荐文章