我们得到用于填充 MySQL 数据库的每日提要。我想将新的提要与前一个提要进行比较,看看有什么变化、添加甚至删除。我正在使用 MySQL 和 PHP。如何在 MySQL 中最好地实现这一点?我认为它应该采用以前的提要,即 MySQL 表,并将其与也存储为 MySQL 表的新提要进行比较。但是我该怎么做才能检索那些在新 MySQL 表中找不到的行呢?谢谢!
问问题
629 次
2 回答
0
我会选择一个完整的外部连接解决方案,在左侧显示“旧”值(添加时为 null),在右侧显示新值(删除时为 null)。如果两边都被填充,则意味着 le 行要么未更改,要么值已更改。
select key, o.value1, o.value2, m.value1, m.value2
from original o full outer join modifications m using(key)
于 2013-03-21T09:54:21.067 回答
0
这可能会帮助您:
SELECT a.*
FROM `OLD_TABLE_NAME` a
WHERE ROW(a.col1, a.col2, …) NOT IN
(
SELECT *
FROM NEW_TABLE_NAME
)
UNION ALL
SELECT b.*
FROM `NEW_TABLE_NAME` b
WHERE ROW(b.col1, b.col2, …) NOT IN
(
SELECT *
FROM OLD_TABLE_NAME
)
享受!
于 2013-03-21T06:08:42.790 回答