我需要通过SQL Server 2008组合两个表。
table1:
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
答案 0 :(得分: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