选择用户尚未评论的博客帖子

时间:2011-12-19 19:20:24

标签: sql ruby-on-rails postgresql

帖子有很多评论。评论(content,author_id)由用户创作。

如何检索给定用户(author_id = 1)尚未评论的博客帖子?

感谢。

2 个答案:

答案 0 :(得分:0)

SELECT p.*
    FROM post p
    WHERE NOT EXISTS(SELECT 1
                         FROM comment c
                         WHERE c.post_id = p.post_id
                             AND c.author_id = 1)

您也可以使用LEFT JOIN执行此操作:

SELECT p.*
    FROM post p
        LEFT JOIN comment c
            ON p.post_id = c.post_id
                AND c.author_id = 1
    WHERE c.post_id IS NULL

答案 1 :(得分:0)

在常规'ole SQL中,这看起来像这样:

SELECT post_id
FROM posts p
WHERE NOT EXISTS (
    SELECT 1
    FROM comments c
    WHERE p.post_id = c.post_id
      AND c.author_id = 1
)

我不确定如何使用Ruby on Rails / ActiveRecord语法执行此操作。

相关问题