一、mysql取并交差集
1)mysql取并集
用union/union all关键字
2)mysql取交集:
需求:选出既在t1表又在t2表的数据,t1、t2两表字段都只有age和name
mysql数据库取交集没有对应的关键字,可以用内连接,如下
select t1.* from t1
inner join t2 on t1.age = t2.age and t1.name = t2.name;
3)mysql取差集:
需求:选出在t1表中但不在t2表中的数据
mysql数据库取差集也没有对应的关键字,可以用外连接,如下:
select t1.* from t1
left join t2 on t1.age = t2.age and t1.name = t2.name
where t2.age is null;
mysql数据库取差集也可以用not exists,如下
select * from t1
where not exists (select 1 from t2 where t1.age = t2.age and t1.name = t2.name);
二、postgresql取并交差集
postgresql取并集,可以用union/union all关键字;取交集,可以用intersect关键字;取差集,可以用except关键字。
三、oracle取并交差集
oracle取并集,可以用union/union all关键字;取交集,可以用intersect关键字;取差集,可以用minus关键字。