MySQL四种连接查询。
首先创建两个表
person 表
create table person(
id int,
name varchar(20),
cardId int
);
card表
create table card(
id int,
name varchar(20)
);
一、内连接
inner join或者join
内联查询:就是两张表的数据,通过某个字段相对,查询出相关记录数据。
例:
select * from person inner join card on person.cardId=card.id;
二、外连接
1、左连接 left join 或者 left outer join
左外连接:会把左边表里面的所有数据取出来,而右边表中的数据,如果有相等的就取出来
如果没有,就会补NULL。
例:
select * from person right join card on person.cardId=card.id;
2、右连接 (rigth join) 或者 (right outer join)
右外连接: 会把右边表里面所有数据取出来,而左边表中的数据,如果有相等的,就显示出来,如果没有就补NULL。
例:
select * from person right join card on person.cardId=card.id;
3、完全外连接full join或者 full outer join
全外连接(full join):mysql不支持full join,如果要实现全外连接,就使用union将左外连接和右外连接并起来。
例:
select * from person left join card on person.cardId=card.id
union
select * from person right join card on person.cardId=card.id;
图解四种连接
1、内连接
2、左(外)连接
3、右(外)连接
4、全(外)连接
全连接就是左连接和右连接的并集,也就是上图的全部。