MySQL的多表联查
程序员文章站
2022-07-05 11:34:21
1.内连接 规则:返回两个表的公共记录 语法: 补充: 2. 左外连接 规则:以左边的表为准,右边如果没有对应的记录用null显示 语法: 3.右外连接 规则:以右边的表为准,左边如果没有对应的记录用null显示 语法: 4.交叉连接 规则:返回笛卡尔积 语法: 5.自然连接 规则:自动判断条件连接 ......
1.内连接
规则:返回两个表的公共记录
语法:
-- 语法一 select * from 表1 inner join 表2 on 表1.公共字段=表2.公共字段 -- 语法二 select * from 表1,表2 where 表1.公共字段=表2.公共字段
补充:
-- 如何实现三表查询 select * from 表1 inner join 表2 on 表1.公共字段=表2.公共字段 inner join 表3 on 表2.公共字段=表3.公共字段
2.
select * from 表1 left join 表2 on 表1.公共字段=表2.公共字段
3.右外连接
规则:以右边的表为准,左边如果没有对应的记录用null显示
语法:
select * from 表1 right join 表2 on 表1.公共字段=表2.公共字段
4.交叉连接
规则:返回笛卡尔积
语法:
select * from 表1 cross join 表2
5.自然连接
规则:自动判断条件连接,判断的条件是依据同名字段
语法:
1.自然内连接(natural join) mysql> select * from stuinfo natural join stumarks; 2.自然左外连接(natural left join) mysql> select * from stuinfo natural left join stumarks; 3.自然右外连接(natural right join) mysql> select * from stuinfo natural right join stumarks;
1、表连接是通过同名字段来连接的
2、如果没有同名字段就返回笛卡尔积
3、同名的连接字段只显示一个,并且将该字段放在最前面
6.
using用来指定连接字段
mysql> select * from stuinfo inner join stumarks using(stuno);