1.内连接的等值连接:按公共属性进行等值连接,求集合的交集。
select * from A inner join B on A.key=B.key;
2.左外连接:左表全部显示,左表中的元组在右表里找不到满足连接条件的元组时,右边补null。即左表全部显示,右表不匹配则补空。
select * from A left join B on A.key=B.key;
3.左连接:只显示左表独有的数据,即集合的差集。
select * from A left join B on A.key=B.key
where B.key is null;
4.右外连接:右表全部显示,右表中的元组在左表里找不到满足连接条件的元组时,左表补空。即右表全部显示,左表不匹配则补null。
select * from A right join B on A.key=B.key;
5.右连接:与左连接同理,只显示右表里独有的数据。
select * from A right join B on A.key=B.key
where A.key is null;
6.全外连接:左表和右表的数据都显示,找不到匹配的补null。
select * from A left join B on A.key=B.key
union
select * from A right join B on A.key=B.key;
注 : mysql不能直接操作全外连接,需要使用左外连接与右外连接的两个结果集进行合并并去除重复。union 去重,union all 不去重。
7.两表独有的数据全部显示。
select * from A left join B on A.key=B.key
where B.key is null
union
select * from A right join B on A.key=B.key
where A.key is null;