【MySQL】如何编写 LEFT JOIN 减去 INNER JOIN 的 SQL 语句

数据模拟

员工表(employee)

id (主键ID) name (姓名)
1 小明
2 小红
3 小兰
4 小刚
5 小强

员工对应信息表(employee_info)

id (主键ID) employee_id (外键,用户表ID) sex (性别) age (年龄)
1 2 18
2 3 15
3 5 16

目的

查询出员工在信息表没有数据的员工姓名,效果如下

id name
1 小明
4 小刚

SQL 代码

第一种写法(LEFT OUTER JOIN 搭配 IS NULL 的写法)

sql 复制代码
SELECT e.*
FROM employee e
		LEFT OUTER JOIN employee_info ei ON e.id = ei.employee_id
WHERE ei.employee_id IS NULL

第二种写法(NOT EXISTS 写法)

sql 复制代码
SELECT e.*
FROM employee e
WHERE NOT EXISTS (
	SELECT 1
	FROM employee_info ei
	WHERE e.id = ei.employee_id 
)

参考

SQL - 如何编写从 LEFT JOIN 结果中减去 INNER JOIN 结果的 SQL 查询?

相关推荐
白衣鸽子34 分钟前
MySQL数据库的“隐形杀手”:深入理解文件结构与治理数据碎片
数据库·后端·mysql
java干货1 小时前
MySQL “灵异事件”:我 INSERT id=11,为什么被 UPDATE id=10 锁住了?
android·数据库·mysql
記億揺晃着的那天1 小时前
数据库中 ACID 四个核心特性
数据库·mysql·oracle·系统设计·acid
一抓掉一大把2 小时前
RuoYi .net-实现商城秒杀下单(redis,rabbitmq)
redis·mysql·c#·rabbitmq·.net
gx23482 小时前
MySQL-5-触发器和储存过程
android·mysql·adb
Zhao_yani3 小时前
Apache Drill 连接 MySQL 或 PostgreSQL 数据库
数据库·mysql·postgresql·drill
计算机学姐5 小时前
基于SpringBoot的高校社团管理系统【协同过滤推荐算法+数据可视化】
java·vue.js·spring boot·后端·mysql·信息可视化·推荐算法
learning-striving10 小时前
SQL server创建数据表
数据库·sql·mysql·sql server
切糕师学AI10 小时前
SQL中的函数索引/表达式索引
数据库·sql·mysql·postgresql·oracle
S_h_a_11 小时前
八股-Mysql 基础篇(1)
数据库·mysql