数据库---DQL 多表联合查询(二)

news/2024/11/29 8:55:16/

一、外连接

内连接:假设A和B表进行连接,使用内连接的话。凡是A表和B表能够匹配上的记录查询出来,这 就是内连接。(内连接只能查询到两张表可以匹配到的数据,匹配不到的数据查不到)

外连接:假设A和B表进行连接,使用外连接的话。A,B两张表中有一张表是主表,一张表是副 表, 主要查询主表中的数据,捎带着查询副表,当副表中的数据没有和主表中的数据匹 配上,副表自动模拟出NULL与之匹配。(外连接可以将主表的数据无条件的全部查询出来)

外连接的分类:
左外连接(左连接):表示左边这张表是主表;

右外连接(右连接):表示右边这张表是主表。

左连接有右连接的写法,右连接也会有左连接的写法。

案例一:找出每个员工的上级领导(所有员工全部查询出来)

内连接:select   a.ename,b.ename   from  emp  a   join emp b  on  a.mgr  =  b.empno;

外连接:select   a.ename,b.ename   from  emp  a  left  join emp b  on  a.mgr  =  b.empno;                            (左外连接)

              select   a.ename,b.ename   from  emp  a  right  join emp b  on  a.mgr  =  b.empno;                          (右外连接)

案例二:找出哪个部门没有员工

二、三张表连接查询 

案例一:找出每一个员工的部门名称以及工资等级。

select e.ename,d.dname,s.grade from emp e join dept d on e.deptno = d.deptno join salgrade s on e.sal between s.losal and s.hisal;

案例二:找出每一个员工的部门名称、工资等级、以及上级领导。

select e.ename,d.dname,s.grade,e1.ename from emp e join dept d on e.deptno = d.deptno join salgrade s on e.sal between s.losal and s.hisal left join emp e1 on e.mgr = e1.empno;

 

 

 

 

 

 


http://www.ppmy.cn/news/824121.html

相关文章

GL823K

下面是另一家SD/TF解码芯片的方案 ![](https://img-blog.csdnimg.cn/20210319145313645.png?x-oss-processimage/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80OTU3MDgwNA,size_16,color_FFFFFF,t_70 13030533945 VX

DBeaver 快捷键大全

有些快捷键未经验证,如有问题望不吝指正! ctrl enter 执行sql ctrl \ 执行sql,保留之前窗口结果 ctrl alt ↑ 向上复制一行 ctrl alt ↓ 向下复制一行 ctrl shift F 对sql语句进行格式化,对于很长的sql语句很有用 ctrl d 删除当前…

海康威视DS-K1F100-D8E发卡器Java版

防止以后要用,记录下 后端代码 Controller RequestMapping(value "cardMake") public class CardMakeController extends BaseController {private String menuId ; // 菜单地址(权限用)Resource(name "memberService")private MemberMana…

06_SQL之多表查询

多表查询 文章目录 多表查询前言一、多表查询分类讲解1.1 等值连接 VS 非等值连接1.1.1 等值连接 1.1.2 非等值连接1.2 自连接VS非自连接1.3 内连接VS外连接SQL92: 使用()创建连接 二、SQL 99 语法实现多表查询2.0 基本语法2.1 内连接&#x…

Linq的一对多连表查询实现

前言 本人小白程序员一枚 会点java也会点.net 最近在公司做项目当中用到了linq连表查询 因为好久没用linq了 有些语法我也忘记了 既然不会那就一个字学! 正文 在数据库中 表关系有一对一关系 一对多关系,多对多关系 我的需求是 我需要根据用户的id查询…

6. SQL 多表查询

文章目录 1. 表的加法1.1 UNION 去重合并1.2 UNION ALL 简单合并1.3 注意事项 2. 表的联结 JOIN2.1 交叉联结 CROSS JOIN2.2 内联结 INNER JOIN2.3 左联结 LEFT JOIN2.4 右联结 RIGHT JOIN2.5 全联结 FULL JOIN2.6 小结 3. 联结的应用3.1 案例13.2 案例23.3 案例3 4. case 表达…

DQL 多表查询

1、多表关系 一对多(多对一) 案例: 部门 与 员工的关系 关系: 一个部门对应多个员工,一个员工对应一个部门 实现: 在从表的一方建立外键,指向主表一方的主键 多对多 案例: 学生 与 课程的关系 关系: 一个学生可以选修多门课程&am…

多表联查--01---LEFT JOIN 实现多表联查

表的关系 一对一,一张表 有时候会为了性能而拆开(商品信息和商品备注信息–详情-很大)一对多,必须两张表多对一,反过来就是一对多,必须两张表多对多,必须三张表,中间表,来维护它们之…