mysql exists子查询

exists后面的子查询,exists 只关心有没有,返回布尔类型

#案例:查询有员工的部门名

    SELECT department_name
FROM departments d
WHERE EXISTS(
    SELECT *
    FROM employees e
    WHERE d.`department_id`=e.`department_id`
);

SELECT department_name
FROM departments
WHERE department_id IN(
    SELECT department_id
    FROM employees
);

#查询没有女朋友的男神信息

SELECT bo.*
FROM boys bo
WHERE  NOT EXISTS(
    SELECT b.boyfriend_id
    FROM beauty b
    WHERE b.`boyfriend_id`=bo.`id`
);

SELECT bo.*
FROM boys bo
WHERE bo.`id` NOT IN(
    SELECT boyfriend_id
    FROM beauty b
);

猜你喜欢

转载自blog.51cto.com/14437184/2438533
今日推荐