(十一)MySQL语法-外连接
#外连接
#外连接的查询结果为主表中的所有记录,如果从表中有匹配的,就显示匹配的值,如果从表中没有和他匹配的值,则显示为null
# 外连接的查询结果=内连接的结果+主表中有而从表中没有的记录
#左外连接:left join 左边的表是主表 右外连接:right join 右边的表是主表 左外连接和右外连接,交换两个表的顺序,能够实现相同的效果
#应用场景:用于查询一个表中有,一个表中没有的情况
#案例1:查询男朋友不在男神表的女神名 简而言之,就是查询没有男神的女神名
SELECT a.NAME, b.* FROM beauty a
LEFT OUTER JOIN boys b ON a.boyfriend_id = b.id
WHERE
b.id IS NULL;--注意:这里推荐使用主键
#使用右外连接实现这个需求
SELECT b.NAME, a.* FROM boys a
RIGHT OUTER JOIN beauty b ON b.boyfriend_id = a.id
WHERE
a.id IS NULL;--注意:这里推荐使用主键
#案例2;查询哪个部门没有员工
select d.department_name,e.* from departments d LEFT JOIN employees e on d.department_id=e.department_id where e.employee_id is null;
#全外连接 现在基本上不用
#全外连接=内连接的结果+表1中有但是表2中没有的+表2中有的但是表1中没有的
#下面的这条sql语句在mysql数据库中是不支持的,所以没有办法执行
select a.*,b.* from beauty a FULL OUTER JOIN boys a on a.boyfriend_id=b.id
#交叉连接
#交叉连接最终显示的结果=表中的记录数X表2中的记录数 典型的笛卡尔乘积
select count(1) from beauty;--12
select count(1) from boys;--4
select b.*,bo.* from beauty b cross join boys bo;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY