在SQL Server中将两个表合并为两个变量

时间:2014-08-18 20:59:30

标签: sql sql-server

我想要通过两个公共变量合并两个表。

所以我有 表1

Var1       Var2       Dates      
---------- ---------- ----------------------
111111     AA          1990-06-20
111111     AA          2000-06-20
222222     BB          1963-06-20
222222     BB          2005-06-20
333333     CC          2006-06-30
333333     CC          2016-06-26

和表2

Var2       Dates      
---------- ----------------------
AA          1990-06-20
BB          1963-06-20

我希望输出为

Var1       Var2       Dates      
---------- ---------- ----------------------
111111     AA          1990-06-20
222222     BB          1963-06-20

我在两个表中使用“Var2”和“Dates”尝试了两次内连接。但结果给了我比我需要更多的行(重复条目)。

2 个答案:

答案 0 :(得分:3)

嗯,最常见的方法是使用INNER JOIN

SELECT T1.*
FROM Table1 T1
INNER JOIN Table2 T2
    ON T1.Var1 = T2.Var1
    AND T1.Dates = T2.Dates

但是当你还想使用第二个表中的某些列时,这更有意义。在你的情况下,你可以做:

SELECT *
FROM Table1 T1
WHERE EXISTS(SELECT 1 FROM Table2
             WHERE Var1 = T1.Var1
             AND Dates = T1.Dates)

答案 1 :(得分:0)

我认为在您的情况下,您只需要一个具有多个条件的JOIN

SELECT t1.*
FROM Table1 t1
    JOIN Table2 t2 ON t1.Var2 = t2.Var2 AND t1.Dates = t2.Dates