【问题标题】:Single inner join with MAX condition具有 MAX 条件的单个内连接
【发布时间】:2014-07-18 13:46:38
【问题描述】:

我使用 SQL Server。

我有:

表 A:

    id1   
    1       
    2       

表 B:

    id2     data2
    1       300
    1       400

如果我使用INNER JOIN,我会得到:

id1 id2 data2
1    1   300
1    1   400

但我不需要任何具有 id1 的重复项。

我不能使用LEFT JOIN,因为我不需要 NULL 值(如果在表 B 中没有 id2 = id1)。

我怎样才能只得到一条记录

id1 id2 data2
1    1   400

也许可以将内部连接与 MAX(data2) 函数一起使用?但我不知道具体是如何...而且我不需要所有 table2 中的 MAX,只需要来自当前记录中 id2 = id1 的字符串。

【问题讨论】:

    标签: sql sql-server tsql join


    【解决方案1】:

    试试这个:

    SELECT A.id1, B.id2, MAX(B.data2)
    FROM A
    INNER JOIN B ON A.id1 = B.id2
    GROUP BY A.id1, B.id2
    

    【讨论】:

      【解决方案2】:

      你可以最大化表 2 的数据 方法如下:

      Select A.id1, A.id2 , max(B.data2) 
      From A INNER JOIN B on 
      A.id1=B.id2
      Group By A.id1
      

      希望对你有帮助!

      【讨论】:

        猜你喜欢
        • 2014-01-10
        • 2012-05-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多