MySQL数据库联合查询(join)的三种⽅式⽰例MySQL数据库联合查询的三种⽅式⽰例
1.内连接:inner join
2.左链接:left join
3.右链接:right join
–第⼀步:创建两个表person、car,并且插⼊测试数据。
create table person(
id_card varchar(18) unique key,
name varchar(32) not null
);
±---------±-------+
| id_card | name |
±---------±-------+
| ID000001 | 关⽻ |
| ID000002 | 张飞 |
| ID000003 | 赵云 |
| ID000004 | 刘备 |
±---------±-------+
create table car(
person_id_card varchar(18),
brand varchar(10),
license varchar(8) not null unique
);
±---------------±----------±-----------+
| person_id_card | brand | license |
±---------------±----------±-----------+
| ID000002 | ⽐亚迪 | 京A333901 |
| ID000002 | 宝马 | 京B55555 |
| ID000003 | 吉利 | 沪A568239 |
| ID000003 | 奥迪 | 沪C22222 |
| ID000005 | ⼤众 | 津A99999 |
| ID000001 | 长城 | 鲁A126985 |
| ID000001 | 奔驰 | 鲁A66666 |
±---------------±----------±-----------+
–第⼆步:内联查询 - 查出的数据是两个表的重合部分。
select p., c.
from person as p
inner join car as c
on p.id_card = c.person_id_card;
±---------±-------±---------------±----------±-----------+
mysql数据库的方法| id_card | name | person_id_card | brand | license |
±---------±-------±---------------±----------±-----------+
| ID000002 | 张飞 | ID000002 | ⽐亚迪 | 京A333901 |
| ID000002 | 张飞 | ID000002 | 宝马 | 京B55555 |
| ID000003 | 赵云 | ID000003 | 吉利 | 沪A568239 |
| ID000003 | 赵云 | ID000003 | 奥迪 | 沪C22222 |
| ID000001 | 关⽻ | ID000001 | 长城 | 鲁A126985 |
| ID000001 | 关⽻ | ID000001 | 奔驰 | 鲁A66666 |
±---------±-------±---------------±----------±-----------+
–第三步:左联查询 - 查出的数据是左表的全部,右表没有的数据显⽰NULL值。select p., c.
from person as p
left join car as c
on p.id_card = c.person_id_card;
±---------±-------±---------------±----------±-----------+
| id_card | name | person_id_card | brand | license |
±---------±-------±---------------±----------±-----------+
| ID000002 | 张飞 | ID000002 | ⽐亚迪 | 京A333901 |
| ID000002 | 张飞 | ID000002 | 宝马 | 京B55555 |
| ID000003 | 赵云 | ID000003 | 吉利 | 沪A568239 |
| ID000003 | 赵云 | ID000003 | 奥迪 | 沪C22222 |
| ID000001 | 关⽻ | ID000001 | 长城 | 鲁A126985 |
| ID000001 | 关⽻ | ID000001 | 奔驰 | 鲁A66666 |
| ID000004 | 刘备 | NULL | NULL | NULL |
±---------±-------±---------------±----------±-----------+
–第三步:右联查询 - 查出的数据是右表的全部,左表没有的数据显⽰NULL值。select p., c.
from person as p
right join car as c
on p.id_card = c.person_id_card;
±---------±-------±---------------±----------±-----------+
| id_card | name | person_id_card | brand | license |
±---------±-------±---------------±----------±-----------+
| ID000002 | 张飞 | ID000002 | ⽐亚迪 | 京A333901 |
| ID000002 | 张飞 | ID000002 | 宝马 | 京B55555 |
| ID000003 | 赵云 | ID000003 | 吉利 | 沪A568239 |
| ID000003 | 赵云 | ID000003 | 奥迪 | 沪C22222 |
| NULL | NULL | ID000005 | ⼤众 | 津A99999 |
| ID000001 | 关⽻ | ID000001 | 长城 | 鲁A126985 |
| ID000001 | 关⽻ | ID000001 | 奔驰 | 鲁A66666 |
±---------±-------±---------------±----------±-----------+
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论