【博学谷学习记录】超强总结,用心分享|MySql连接查询超详细总结

一、概述在实际开发中,大部分情况下都不是在单表中进行数据操作,一般都是多张表进行联合查询 。通常一个业务就会对应的有好几张表 。MySql中的连接查询分为交叉连接 , 内连接,外连接三部分 。其中交叉连接也叫笛卡尔积 , 也是内连接的一种 。
二、连接查询常用方法准备数据表:员工信息表(emp) 以及部门信息表(demp)
 

【博学谷学习记录】超强总结,用心分享|MySql连接查询超详细总结

文章插图
【博学谷学习记录】超强总结,用心分享|MySql连接查询超详细总结

文章插图
 1、交叉连接:也叫笛卡尔积 。特点:不使用任何选择条件 , 直接把表1中的每个行与表2中的每个行进行一一匹配 。因此该方式会产生很多重复数据 , 用的比较少 。下面我们根据具体例子来进行详细解读 。
案例:查询员工以及部门信息
select * from emp,demp;
【博学谷学习记录】超强总结,用心分享|MySql连接查询超详细总结

文章插图
我们可以看到 , 由于没有限定条件,该结果就是两张表记录条数的乘积 , 这就是笛卡尔积现象 。
 2、内连接:顾名思义,就是指两张表中有交集的部分是需要的查询数据 。
【博学谷学习记录】超强总结,用心分享|MySql连接查询超详细总结

文章插图
内连接又细化分为等值连接、非等值连接以及自连接 。
2.1 等值连接等值连接的最大特点就是:条件是等量关系的
等值连接的语法格式:select 字段名 from 表1 inner join 表2 on 消除笛卡尔积的连接条件A=B;
案例:根据部门id查询员工所对应的部门名称
select name,dname from demp inner join emp where demp.dpmp = emp.dpmp;
【博学谷学习记录】超强总结,用心分享|MySql连接查询超详细总结

文章插图
2.2 非等值连接顾名思义 , 非等值连接的最大特点就是:条件不是等量关系的
非等值连接的语法格式:select 字段名 from 表1 inner join 表2 on 消除笛卡尔积的连接条件;
案例:查询部门编号在10-20之间的员工信息以及对用的部门信息
select * from emp inner join demp where emp.dpmp=demp.dpmp and demp.dpmp between 10 and 20;

    推荐阅读