MySQL多表查询之(外连接)

MySQL 链表中的外连接查询 主要包括 左外链接和右外连接
在这里插入图片描述
我们来用代码演示一下

首先 来看我们的两张表

staff 用户表
在这里插入图片描述
department 部门表
在这里插入图片描述
大家可以看到 这里我们赵敏员工绑定了 1号 开发部的外键 但2号张三并没有绑定任何外键 而部门表则只有1号开发部被用户关联了

这这种情况 如果用内连接查询 则 之后查到 他们的交集部分 就是 通过赵敏 查到开发部 而用户表中其他没有关联部门的数据 和 没有被关联的部门则不会 被查出来

外连接则解决了这个问题

比如 我们想查 用户表的全部数据 如果 用户表的某条数据关联了部门 则一起展示他的部门信息
则可以使用

select s.name,d.name from staff s left outer join department d on s.departmentid = d.id;

执行结果如下
在这里插入图片描述
这是一个很典型的左外链接查询 我们设置staff 用户表的别名为 s department 部门表 别名为d
我们查询的主要字段是 用户表的 name (用户名字段) 部门表单 name (部门名称字段)

我们设置左外连接查询 左表为 staff 用户表 以用户为条件查部门
这里 我们赵敏 有部门 就对应展示了开发部
而张三没有部门 则部门查出来的是null空

如果要根据部门查 也很简单

select s.name,d.name from staff s right outer join department d on s.departmentid = d.id;

运行结果如下

在这里插入图片描述
这就是右外连接 以右表为条件
因为之后开发部下有用户
所以 只有开发部对应了赵敏 其他的都是空的

猜你喜欢

转载自blog.csdn.net/weixin_45966674/article/details/127336554
今日推荐