【发布时间】:2016-07-14 16:59:54
【问题描述】:
我有 2 个不同的数据库。两者都有一张叫做水果的桌子。现在我想相对于第一个数据库更新第二个数据库。为此,我将第一个数据库中的所有列值(ID 列除外)的每一行与第二个数据库中的每一行进行比较,并获取那些存在差异的行。我正在使用的查询是
SELECT A.* FROM db1.Fruit A
Left Outer Join Fruit B ON
(A.Ratings = B.Ratings AND A.Name = B.Name AND A.Color = B.Color)
where B.Ratings IS NULL OR B.Name IS NULL OR B.Color IS NULL
Table in the first databaseTable in the second database。
现在结果中应该显示名称为 Kiwi 且颜色为绿色的 ID 为 3 的行。但它也显示 ID 为 4 且名称为 Banana 的行,因为其他列为空,在我的查询中,如果B.Ratings IS NULL or B.Color IS NULL 则返回该行。
那么有没有其他方法可以按所有列(ID 列除外)比较表 1 的 1 行与表 2 的 1 行并返回任何列值不匹配的行?
【问题讨论】:
-
欢迎来到 SO。阅读代码而不是将其翻译成英文时,最好理解代码。请提供minimal reproducible example。