EXISTS 是 SQL 中的一个逻辑运算符,用于检查子查询是否返回任何行。它可以高效地判断两个表中是否存在相同的记录。
SELECT column_name(s)
FROM table1
WHERE EXISTS (SELECT 1 FROM table2 WHERE condition);
SELECT *
FROM table1
WHERE EXISTS (
SELECT 1
FROM table2
WHERE table1.key_column = table2.key_column
);
SELECT *
FROM employees e
WHERE EXISTS (
SELECT 1
FROM managers m
WHERE e.department = m.department
AND e.salary > m.salary
);
-- 找出table1中存在但table2中不存在的记录
SELECT *
FROM table1
WHERE NOT EXISTS (
SELECT 1
FROM table2
WHERE table1.id = table2.id
);
-- 检查是否有员工同时也是经理
SELECT e.employee_name
FROM employees e
WHERE EXISTS (
SELECT 1
FROM managers m
WHERE e.employee_id = m.manager_id
);
-- 检查产品表中是否有库存为零的产品
SELECT product_name
FROM products p
WHERE EXISTS (
SELECT 1
FROM inventory i
WHERE p.product_id = i.product_id
AND i.quantity = 0
);
EXISTS 关键字是 SQL 查询中一个强大的工具,特别适合用于检查记录是否存在而不需要实际返回子查询中的数据。