我正在想最有效的方法来检查一个表中的数据是否在另一个表中发生了变化。例如:表a
id name age 111 John 30 222 Jill 32
表b
id name age 111 John 30 222 Jill 33 333 Jacob 35
在这里,我们可以看到1行的数据发生了变化,即id 222。
r7knjye21#
您只需要使用您的密钥加入它们:
SELECT a.id, a.name, a.age, b.name, b.age FROM table_a a JOIN table_b b ON a.id = b.id AND (a.name <> b.name OR a.age <> b.age)
vptzau2j2#
如果一行用(id, name)标识,则
(id, name)
SELECT id, name, tableA.age old_age, tableB.age new_age FROM tableA JOIN tableB USING (id, name) WHERE NOT (tableA.age <=> tableB.age)
如果一行用(id)标识,则
(id)
SELECT id, tableA.name old_name, tableB.name new_name, tableA.age old_age, tableB.age new_age FROM tableA JOIN tableB USING (id) WHERE NOT ((tableA.name, tableA.age) <=> (tableB.name, tableB.age))
2条答案
按热度按时间r7knjye21#
您只需要使用您的密钥加入它们:
vptzau2j2#
如果一行用
(id, name)
标识,则如果一行用
(id)
标识,则