SQL的四种连接查询
内连接
- inner join 或 join
外连接
- 左连接 left join 或者 left outer join
- 右连接 right join 或 right outer join
- 完全外连接 full join 或 full outer join
创建数据库
create database testJoin;
– person 表
id ,name ,cardId
create table person(
id int,
name varchar(20),
cardId int
);
– card 表
id ,name
create table card(
id int,
name varchar(20)
);
– 插入数据
insert into card values(1,'饭卡');
insert into card values(2,'建行卡');
insert into card values(3,'农行卡');
insert into card values(4,'工商卡');
insert into card values(5,'邮政卡');
insert into person values(1,'张三',1);
insert into person values(2,'李四',3);
insert into person values(3,'张三',6);
– inner join 查询
内联查询,其实就是两张表中的数据,通过某个字段相对,查询出相关记录数据。
select * from person inner join card on person.cardId = card.id;
select * from person join card on person.cardId = card.id;
– 左连接 left join
左连接,会把左边表里面的所有数据取出来,而右边表中的数据,如果有相等的,就显示出来,如果没有,就会补null
SELECT * FROM person LEFT JOIN card ON person.cardId = card.id;
– 右连接 right join
右连接,会把右边表里面的所有数据取出来,而左边表中的数据,如果有相等的,就显示出来,如果没有,就会补null
SELECT * FROM person RIGHT JOIN card ON person.cardId = card.id;
– 全外连接
mysql不支持全外连接