【发布时间】:2014-07-20 19:57:07
【问题描述】:
我在 MySQL DB 中有 2 个表(A 和 B) 两者都具有非常相似的结构,因为每次用户更改表 A 中的数据以获得完整的更改历史记录时,表 B 都会插入所有数据的记录。 Lastupdate 列是 INT 类型,并以 UNIX 时间戳格式保持更新时间 所以假设表有这样的记录:
表A Id User_id Name1 Name2 Lastname Lastupdate 1 12 约翰·亚历山大·史密斯 1405594757 2 27 嫁给安波平斯 1405594877 3 51 让·克劳德·范法斯特 1405594677 表 B Id User_id Name1 Name2 Lastname Lastupdate 1 12 约翰·亚历山大·斯密特 1405594747 2 27嫁给安波平斯1405594757 3 51 让·克劳德·范法斯特 1405594757 1 12 约翰 1405594727 1 12 约翰·亚历克斯 1405594737 3 51 让·范法斯特 1405594757对于表 A 中的每条记录,我希望查看与表 B 的最新记录的比较(基于 Lastupdate)以及更改了哪个字段的信息
所以对于 user_id = 12 我会有类似
Id User_id Name1 Name2 Lastname Lastupdate 1 12 John 改名 2:Alexander 改姓:Smith 1405594757我正在尝试类似的东西
SELECT if(u1.name1 <> u2.name1, CONCAT("Changed: ",u1.name1), u1.name1)
FROM tableA u1,tableB u2
WHERE u1.user_id = 7433 AND u2.user_id = 7433
但是好像不太对,请指教
【问题讨论】: