专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 MySQL多表查询语句

MySQL多表查询语句

更新时间:2022-08-03 10:40:05 来源:赢咖4 浏览1448次

大家在学习MySQL教程的时候会遇到多表查询的问题,那么,MySQL多表查询语句是什么?赢咖4小编来告诉大家。在实际开发中多表查询是经常遇到的,也是编写sql的一个难点,所以多表查询是必须掌握的。其实单一的多表查询是比较简单的,困难的sql编写一般会是多表查询结合其他的一些关键字甚至函数。想要掌握好,除了了解关键字的用法,数据的存储位置,就是多练习了。为方便举例,用t_user和t_role这张表来举例,t_user字段及数据如下:

t_role表数据如下:

接下来是多表连接查询:关键字join,将两张表依据某个条件进行数据拼接。就是通过字段拼接,将两张表的记录变成 一条记录,字段数量增加。效率比单表查询低。下面就来看看它的几种用法:

1.交叉连接

cross join,不需要连接条件的连接。其结果就是笛卡尔积;

没有实际数据价值,只是丰富了连接查询的完整性;我们要避免出现这种sql。

2.内连接

inner join,将两张表根据指定的条件连接起来,严格连接。就是将一张表中的数据与另一张表中的数据根据条件匹配:配皮成功:保留连接的数据;不成功:都不保留。

语法:左表 inner join 右表 on 连接条件

这里我们就来查询id都为1的数据:

3.外连接

outer join,是一种不严格的连接。分两种,有主表之分:

左连接:left join ,左表为主表

右连接:right join ,右表为主表

就是用主表的记录去匹配从表的记录:成功保留;不成功,也保留,只是从表数据设为null。

这就是与内连接的区别,即在数据匹配失败时,外连接始终都会保留一条记录,只是从表设为null。

值得注意的是,不论是左连接还是右连接,字段显示顺序不受影响,都是先显示左表的。

这里先以t_user为主表:

以t_role为主表:

4.自然连接(使用较少)

natural join,是一种自动寻找连接条件的连接查询。

包含自然内连接和自然外连接:

自然内连接:natural join

自然外连接:natural left/right join

条件匹配模式:

自动寻找相同字段名作为连接条件。

会将同名字段合并为一个字段。

select  * from m2 natural left join m1 ;

5.using

连接查询时如果是同名字段作为连接条件,using可以代替on出现(比on更好)。

针对同名字段;

会自动合并对应字段为一个;

可以同时使用多个字段作为条件。

select  * from m2  left join m1 using(id,sfz) ;
select  * from m2  left join m1 using(sfz) ;

通过上述介绍,相信大家对MySQL多表查询语句已经有所了解,大家如果想了解更多相关知识,可以关注一下赢咖4的Java赢咖4在线学习,里面的课程内容从入门到精通,细致全面,很适合零基础的小伙伴学习,希望对大家能够有所帮助。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>