我给这个题提交了一个解答 https://leetcode.cn/problems/employees-with-missing-information/
这是我的代码:
with eid as (select employee_id
from Employees),
sid as (select employee_id
from Salaries)
select employee_id
from (select e.employee_id as employee_id
from eid e
where e.employee_id not in
(select * from sid)
union
select s.employee_id as employee_id
from sid s
where s.employee_id not in
(select * from eid)
) t
order by employee_id;
可以发现,not in (select * from sid)和not in (select * from eid)这两个子查询都没有加 alias ,但可以通过,如果加了反而不通过
而
from (select e.employee_id as employee_id
from eid e
where e.employee_id not in
(select * from sid)
union
select s.employee_id as employee_id
from sid s
where s.employee_id not in
(select * from eid)
) t
这个子查询则需要加别名(我的命名是 t )
为什么会这样呢?