mysql 从一个表到另一个表的数据验证

3vpjnl9f  于 12个月前  发布在  Mysql
关注(0)|答案(2)|浏览(67)

我正在想最有效的方法来检查一个表中的数据是否在另一个表中发生了变化。例如:
表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。

r7knjye2

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)
vptzau2j

vptzau2j2#

如果一行用(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)标识,则

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))

相关问题