比较 2 个不同数据库中 2 个表的行
Compare the rows of 2 tables in 2 different databases
我有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
第一个数据库中的表第二个数据库中的表。
现在在结果中,它应该显示 ID 为 3 的行,其中名称为 Kiwi,颜色为绿色。但它也显示了ID 为 4 且名为 Banana 的行,因为其他列为 null,在我的查询中,我正在编写如果B.Ratings IS NULL or B.Color IS NULL
返回该行。
那么有没有其他方法可以通过所有列(ID 列除外)将表 1 的 1 行与表 2 的 1 行进行比较,并返回任何列值不匹配的行?
我一直很困惑:)编辑:我回到我最初的反应
SELECT A.*
FROM db1.Fruit as A JOIN db2.Fruit as B ON
(A.Name = B.Name AND A.Color = B.Color )
WHERE A.Rating <> B.Rating
LEFT OUTER JOIN
会给出左侧带有 Null 的行(您将看到它的右侧部分);这不是您想要做的(至少这是我目前的理解)。此语句将为您提供:db1 上的信息,这些信息与 db2 中的名称和颜色相同,但评级不同(我认为这是您想要获得的)。如果要更改列的组合,则必须更改联接。
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 为什么比较运算符如此快速
- 查询SQLite数据库中的日期
- 我可以使用 g++ 进行三种比较 (<=>) 吗?
- 有没有一种方法可以创建一个带有哈希表的数据库,该哈希表具有恒定时间查找功能
- 比较字符数组
- 将模板化的类型与C++中的某些类/类型进行比较
- C++自定义比较函数
- 如何比较自定义类的std::变体
- 如何在ArangoDb AQL查询中指定数据库
- 比较数据库搜索方法
- 伯克利数据库 Db->get 使用自定义比较函数时不起作用
- SQLite 3 C++测验 - 比较用户对现有数据库的响应
- SQLite C++ 比较同一数据库中的两个表以匹配记录
- 如何在 opencv 中将图像与数据库进行比较C++
- 比较C++中的两个SQLite数据库
- 逐像素比较2个图像(第一个图像存储在数据库中)
- c++ /SIFT/SQL -如果有一种方法可以有效地比较图像的SIFT描述符与SQL数据库中的SIFT描述符
- 比较 2 个不同数据库中 2 个表的行
- 将示例图像与图像数据库进行比较时出现意外结果 - Opencv c++