gpt4 book ai didi

mysql - 阐明如何使用 WITH、AS 函数代替子查询

转载 作者:太空宇宙 更新时间:2023-11-03 11:21:19 25 4
gpt4 key购买 nike

我正在使用一个非常基本的员工表,并尝试按薪水低于某个水平的那些 ID 进行过滤。我知道我可以使用

select id, first_name
from employees
where salary < 20000

但我正在测试我对 with 的了解,所以我使用了这个

with black_list as (select id from employees where salary< 20000)

select id, first_name
from employees where salary not in black_list

有人能告诉我为什么这会给我一个错误吗?无论我尝试什么,查询都不起作用,我假设使用 WITH, AS 可以替代使用子查询。

最佳答案

black_list 就像一个表格。它需要在 from 子句中引用:

select id, first_name
from employees
where salary not in (select salary from black_list);

当然,这会失败,因为salary 不是black_list 中的列。但这就是您正在尝试的。

我会使用 not exists 而不是 not in 来编写您想要的内容。那将是:

select e.id, e.first_name
from employees e.
where not exists (select 1
from black_list bl
where bl.id = e.id
);

另请注意表别名和限定列名的使用。

关于mysql - 阐明如何使用 WITH、AS 函数代替子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59632618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com