文章目录
前言
学习SQL多表查询,本文就介绍MySQL数据库中联表查询方法
一、MySQL中有几种联表查询方法?
内连接:inner join 或 join
左外连接:left join
右外连接:right join
全连接:Mysql是不支持全连接的,可以利用union合并结果集实现全连接效果
等值连接:where 和内连接一样
笛卡尔积:两张或以上的表数据的 “爆炸” 集合
”导入素材:“
create table table_1(id int); create table table_2(id int); insert into table_1 values(1),(2),(3); insert into table_2 values(2),(3),(4);
二、实例讲解
1.内连接
select * from table_1 t1 join table_2 t2 on t1.id=t2.id;
内连接取表之间的交集,它们的交集取决于 on 后面的条件
2.左外连接
select * from table_1 t1 left join table_2 t2 on t1.id=t2.id;
左外连接取表之间的交集以及左表的全部数据
3.右外连接
select * from table_1 t1 right join table_2 t2 on t1.id=t2.id;
与左外连接相反,取表之间的交集和右表的全部数据
4、全连接
select * from table_1 union select * from table_2;
知道内连接,左外连接和右外连接后,全连接我想应该也知道了吧。就是多张表的所有数据,但是注意"它们的交集"不能重复出现。
5、等值条件连接
select * from table_1 t1,table_2 t2 where t1.id=t2.id;
和内连接一样是取交集
6、笛卡尔积
select * from table_1,table_2;
实际不会用笛卡尔积,通常是配合条件查询出有效的数据,比如:等值连接查询
总结
以上就是今天要讲的内容,本文仅仅介绍了常用的6种表连接方式,在SQL中还有一些方式,比如:条件不一定得是”等值“,也可以是范围。