0

请考虑我们有两个表
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 中的新记录?请帮我。我被困住了。

4

1 回答 1

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 列。

通常,您应该只需要加入键,因此只要键背后的意图匹配,不同的列名称就应该很重要。

于 2013-10-30T01:30:50.603 回答