2

私は2つのテーブルpostsauthors. 著者には多くの投稿があるため、外部キーがありますposts.author_id。投稿には の列もありapproved_atdatetime投稿NULLが承認されるまでは

では、承認済みの投稿がないすべての著者を選択するにはどうすればよいでしょうか?

次のような方法で、承認済みの投稿が少なくとも 1 つあるすべての作成者を選択できます。

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

4

2 に答える 2

0

postgres がこの構文をサポートしている場合は、このアプローチを試してください

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 NULL

    except

    SELECT a.id FROM authors a
    JOIN posts p ON a.id = p.author_id
    AND p.approved_at IS NOT NULL
)
于 2013-08-28T16:17:41.773 に答える