loading

SQL251 使用含有关键字exists查找未分配具体部门的员工的所有信息。

SQL251 使用含有关键字exists查找未分配具体部门的员工的所有信息。

描述
使用含有关键字exists查找未分配具体部门的员工的所有信息。

CREATE TABLE `employees` (
`emp_no` int(11) NOT NULL,
`birth_date` date NOT NULL,
`first_name` varchar(14) NOT NULL,
`last_name` varchar(16) NOT NULL,
`gender` char(1) NOT NULL,
`hire_date` date NOT NULL,
PRIMARY KEY (`emp_no`));
CREATE TABLE `dept_emp` (
`emp_no` int(11) NOT NULL,
`dept_no` char(4) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`dept_no`));

输出格式:

emp_no	birth_date	first_name	last_name	gender	hire_date
10011	1953-11-07	Mary	Sluis	F	1990-01-22

答案

select * from employees
where not  exists(
    select 1
    from dept_emp
    where employees.emp_no = dept_emp.emp_no
);

补充
MySQL 中的 EXISTS 语法用于在子查询中测试是否存在至少一行数据。如果子查询返回至少一行数据,则 EXISTS 条件为真(TRUE),并且外部查询会执行相应的操作(如返回数据)。如果子查询没有返回任何行,则 EXISTS 条件为假(FALSE),并且外部查询可能会忽略(基于上下文)或返回不同的结果。EXISTS 子查询通常与 SELECT 1 或其他不返回实际数据的查询一起使用,因为 EXISTS 只关心是否存在行,而不关心行的具体内容。

posted @ 2024-07-22 22:47  EaApple  阅读(60)  评论(0)    收藏  举报