文章目录
- 1. union联合查询
- 2. inner join 内连接
- 3. left join 左连接
- 4. right join 右连接
- 5. cross join 交叉连接
- 6. natural join 自然连接
- 7. using 当两张表字段名都相同时,指定连接字段
- 8. 哪个连接实用?
- 9. 内容出处
1. union联合查询
① 联合查询:用union把两个查询语句结合在一起
② 两个查询语句,字段及其数据类型一不一样无所谓,但是字段个数必须一致
可能会用到去重操作
如果两张表查询的字段名一样,可能会用到distinct去重操作(但是从下面的结果来看,union联合好像自动去重了)
2. inner join 内连接
select 字段名,字段名 from 主表 inner join 从表 inner join 从表 on 主表.公共字段=从表.公共字段=从表.公共字段
作用:联合查询
注意:一定要确认主从关系、建立公共字段。可以不使用外键
举例理解(score里的stuId来自student表里id):
(上述score表里没有jerry的成绩(ta缺考了),所以联合查询的结果也没ta)
(三张表联合查询)
3. left join 左连接
以左表为基准
怎么理解?
以左边为基准,就算右边那张表里没有2号学生的信息,查询结果依然显示2号学生
4. right join 右连接
以右表为基准
怎么理解?
以右边为基准,就算左边那张表里没有学号为12的学生信息,查询结果依然显示12号学生
5. cross join 交叉连接
select 字段名 from 表名 cross 表名;
默认返回一个笛卡尔积
加上where 表名.公共字段=表名.公共字段后,返回值类似于内连接
6. natural join 自然连接
① natural join其实默认是自然内连接,根据同名字段连接两张表。
② 好处:不用写两边公共的字段名,但是必须保证两边公共字段名一致
natural left join 自然左连接
natural right join 自然右连接
自然连接的两张表没有同名字段怎么办?
返回笛卡尔积
7. using 当两张表字段名都相同时,指定连接字段
情境:t1和t3有两个公共字段 id 和 name,这两张表自然连接会产生什么结果?-- 返回一张空表
怎么办?
8. 哪个连接实用?
出于对代码可读性的考虑,基本不会用到自然连接和using
9. 内容出处
标签:join,公共,natural,笔记,查询,mysql,多表,连接,字段名 From: https://blog.csdn.net/m0_62024160/article/details/142219198