我想要通过两个公共变量合并两个表。
所以我有 表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”尝试了两次内连接。但结果给了我比我需要更多的行(重复条目)。
答案 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