请考虑我们有两张桌子
Table1
有(3列)
Table2
具有相同的3列。
要查找Table2
中但不在Table1
中的新记录,我们将使用以下代码。
SELECT * FROM Table2 AS T2
WHERE (((Exists (SELECT *
FROM
Table1 T1
WHERE
T1.Field1 = T2.Field1 AND
T1.Field2 = T2.Field2 AND
T1.Field3 = T2.Field3))=False));
但是,如果我们不知道表中的列数怎么办?我们如何编写通用代码或类似forloop的东西来比较表中的所有列并找到Table2中不在table1中的新记录?请帮我。我被卡住了。
答案 0 :(得分:0)
当您在内部联接时,您只指定两个表中的匹配项。您只能找到以下匹配项:
SELECT *
FROM Table1 t1
INNER JOIN Table2 t2 ON t2.field1 = t1.field1
AND t2.field2 = t1.field2
AND t3.field3 = t1.field3
此查询应返回6列。
通常,您只需要加入密钥,因此只要密钥背后的意图匹配,不同的列名称就会很重要。