gpt4 book ai didi

sql - Postgres : Select where all rows with the same foreign key are null

转载 作者:行者123 更新时间:2023-11-29 12:13:29 24 4
gpt4 key购买 nike

我有两个表postsauthors。一个作者有很多篇文章,所以有一个外键posts.author_id。帖子还有一列approved_at,它是一个datetime,在帖子被批准之前是NULL

那么我如何才能选择所有没有批准帖子的作者呢?

我可以选择所有拥有至少一个批准的帖子的作者,这些帖子是这样的:

SELECT * FROM authors
WHERE id IN
(
SELECT a.id FROM authors a
JOIN posts p ON a.id = p.author_id
AND p.approved_at IS NOT NULL
)

但我不知道如何做相反的事情:我想选择所有作者,其中所有他们的相关帖子都有approved_at = NULL。我该如何选择它?

最佳答案

如果您想选择根本没有帖子或所有帖子都未获批准的作者(或者,如您所说 - 没有已获批准帖子的作者),请使用 not exists ,对我来说这是最易读的方式:

select a.*
from authors as a
where
not exists
(
select *
from posts as p
where p.author_id = a.id and p.approved_at is not null
)

关于sql - Postgres : Select where all rows with the same foreign key are null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18492949/

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