mysql外连接、交叉连接
2022/1/4 19:04:38
本文主要是介绍mysql外连接、交叉连接,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
#外连接:用于查询主表中有 从表中没有的记录 /* 1、外连接的查询结果为主表中的所有记录 如果从表中有和它匹配的,则显示匹配值 如果没有和它匹配的,则显示null 也就是:外连接查询结果=内连接结果+主表中有而从表中没有的记录 2、左外连接:left outer join 左边的是主表 右外连接:right outer join 右边的是主表 3、左外和右外交换两个表的顺序,可以实现同样的效果 #内连接 A∩B #左外连接 A∩B∪A A为主表 #右外连接 A∩B∪B B为主表 #全外连接 A∪B */ #案例:查询男朋友不在男生表中的女生名 #左外 SELECT b.name FROM beauty b LEFT OUTER JOIN boys bo ON b.boyfriend_id=bo.id WHERE bo.id IS NULL; #右外 SELECT b.name FROM boys bo RIGHT OUTER JOIN beauty b ON b.boyfriend_id= bo.id WHERE bo.id IS NULL; #二者仅仅就是写法不同 要区分主从表 #查询那个部门没有员工 #左外 USE myemployees; SELECT department_name FROM departments d LEFT OUTER JOIN employees e ON d.department_id=e.department_id WHERE employee_id IS NULL; #右外 USE myemployees; SELECT department_name FROM employees e RIGHT OUTER JOIN departments d ON d.department_id=e.department_id WHERE employee_id IS NULL; #全外连接结果=内连接结果+表一中有表二中没有+表二中有表一中没有,但mysql不支持全外,适用于Oracle和DB2 SELECT b.* ,bo.* FROM beauty b FULL OUTER JOIN boys bo ON bo.id=b.boyfriend_id; #交叉连接 就是用99标准的语法实现的笛卡尔乘积 SELECT b.* ,bo.* FROM beauty b CROSS JOIN boys bo ON bo.id=b.boyfriend_id; #查询编号>大于3的女生的男朋友信息,若有则列出详细信息,若没有用null SELECT b.id,b.name,bo.* FROM beauty b LEFT OUTER JOIN boys bo ON bo.id=b.boyfriend_id WHERE b.id>3; #查询那个城市没有部门 USE myemployees; SELECT city FROM locations l LEFT OUTER JOIN departments d ON l.location_id=d.location_id WHERE d.department_id IS NULL; #查询部门名为sal或it的员工信息 SELECT d.department_name,e.* FROM departments d LEFT OUTER JOIN employees e ON e.department_id = d.department_id WHERE d.department_name='SAL'OR d.department_name= 'IT';
这篇关于mysql外连接、交叉连接的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-25MySQL报错Duplicate entry '0' for key 'PRIMARY'
- 2024-05-29阿里 Canal 实时同步 MySQL 增量数据至 ClickHouse 数据库
- 2024-05-24在Linux下管理MySQL的大小写敏感性
- 2024-04-26MySQL查出时间比实际晚8小时的解决方案
- 2024-04-01JPA不识别MySQL的枚举类型
- 2024-03-30mysql数据库表卡死解决方法
- 2024-03-15MySQL多数据源笔记5-ShardingJDBC实战
- 2024-03-11natural join mysql
- 2024-03-11关于VS2017,VS2015 中利用 EF使用Mysql 不显示数据源问题解决方案
- 2024-02-26mysql 阿里云xb后缀备份文件恢复-icode9专业技术文章分享