【发布时间】:2015-05-25 18:41:44
【问题描述】:
如何计算同一表中的两组数据之间的添加、删除和修改?这是一个例子:
drop table if exists people;
create table people (job int, id int, name varchar(255));
insert into people values (1, 1, "Amy");
insert into people values (1, 2, "Bob");
insert into people values (1, 3, "Chris");
insert into people values (2, 1, "Amy");
insert into people values (2, 2, "Robert");
insert into people values (2, 4, "Dennis");
在此示例中,Bob 的名字已更改为 Robert,Chris 已被删除,而 Dennis 已被添加。
到目前为止,我可以得到补充:
select p2.* from people p1
right join people p2
on p1.job = 1
and p2.job = 2
and p1.id = p2.id
where p2.job = 2
and p1.id is null;
我可以得到删除:
select p1.* from people p1
left join people p2
on p1.job = 1
and p2.job = 2
and p1.id = p2.id
where p1.job = 1
and p2.id is null;
但我不确定如何进行修改。
有没有更好的办法?
谢谢
【问题讨论】: