首页 文章

SQL Server 2008将两个表合并为一个,但得到重复的行

提问于
浏览
0

我需要通过SQL Server 2008组合两个表 .

表格1:

col  col1  col2_a
 yyy  ddd   1589

表2:

col  col1  col2_b
 yyy  ddd   6231

这些表具有相同的col和col1值,只有col2不同 . 我需要将它们合并到一个表中 .

SELECT a.col , a.col1, a.col2_a, b.col2_b
 FROM table1 as a, table2 as b
 WHERE a.col = b.col AND a.col1 = b.col1

但是,这为每个col和col1组合提供了4个重复的行 .

任何帮助,将不胜感激 .

我预计 :

col  col1  cola  colb
 yyy  ddd   1589  6231

1 回答

  • 0

    如果你只是想要消除完全重复的行,你可以简单地使用 DISTINCT ;

    SELECT DISTINCT a.col , a.col1, a.col2_a, b.col2_b
    FROM table1 as a
    JOIN table2 as b
      ON a.col = b.col AND a.col1 = b.col1
    

    如果您只希望table2中有一个值(例如最大值),即使有几行匹配,您也可以从table1中选择行,并且只能从table2中选择b.col2的最大匹配值;

    SELECT DISTINCT a.col , a.col1, a.col2_a, MAX(b.col2_b) col2_b
    FROM table1 as a
    JOIN table2 as b
      ON a.col = b.col AND a.col1 = b.col1
    GROUP BY a.col, a.col1, a.col2
    

相关问题