时间:2021-07-01 10:21:17 帮助过:32人阅读
INSERT INTO `test_a` (`trade_id`,`user_id`,`amount`) VALUES (‘t0001‘,‘u0001‘,100); INSERT INTO `test_a` (`trade_id`,`user_id`,`amount`) VALUES (‘t0002‘,‘u0005‘,29.8); INSERT INTO `test_a` (`trade_id`,`user_id`,`amount`) VALUES (‘t0003‘,‘u0002‘,3050); INSERT INTO `test_a` (`trade_id`,`user_id`,`amount`) VALUES (‘t0004‘,‘u0003‘,128.4); INSERT INTO `test_a` (`trade_id`,`user_id`,`amount`) VALUES (‘t0005‘,‘u0004‘,33.7); INSERT INTO `test_b` (`trade_id`,`user_id`,`amount`) VALUES (‘t0001‘,‘u0001‘,100); INSERT INTO `test_b` (`trade_id`,`user_id`,`amount`) VALUES (‘t0002‘,‘u0005‘,29.8); INSERT INTO `test_b` (`trade_id`,`user_id`,`amount`) VALUES (‘t0003‘,‘u0002‘,3050); INSERT INTO `test_b` (`trade_id`,`user_id`,`amount`) VALUES (‘t0004‘,‘u0003‘,128.4); INSERT INTO `test_b` (`trade_id`,`user_id`,`amount`) VALUES (‘t0005‘,‘u0004‘,33.7); INSERT INTO `test_b` (`trade_id`,`user_id`,`amount`) VALUES (‘t0006‘,‘u0006‘,19.6);
select * from test_a where concat(concat(trade_id,user_id),amount) not in( select concat(concat(a.trade_id,a.user_id),a.amount) from test_a as a left join test_b as b on a.trade_id=b.trade_id) union select * from test_b where concat(concat(trade_id,user_id),amount) not in( select concat(concat(a.trade_id,a.user_id),a.amount) from test_a as a left join test_b as b on a.trade_id=b.trade_id)
思路:先将两张表相同的数据找出来,然后分别用表A和表B和找出来相同数据作对比得出差异,最后把差异数据union,可能我这不是最好的方法,谁有更好的方法可以告诉我。
[原]用SQL比较两张结构完全相同的表数据
标签:告诉 key ble 这不 等于 table 好的 ima user