2011-12-19 80 views
1

一篇文章有​​很多評論。評論(內容,author_id)由用戶創作。選擇用戶沒有評論過的博客文章

如何檢索給定用戶(author_id = 1)未發表評論的博客文章?

謝謝。

+0

你的模式是什麼樣的? – 2011-12-19 19:24:53

+0

一篇文章有​​一個標題和內容。評論有一個內容,author_id和post_id。 – alste 2011-12-19 19:26:16

回答

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) 

你也可以用左這樣做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 
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語法來做到這一點。