2

尝试从不在另一个表中的表中选择特定条目时,我在 MySQL 中遇到问题。我知道这句话听起来很疯狂,但这是我正在尝试做的一个例子。

表用户:

    user_id,username,password (plus other columns not important to this)

表文章:

    article_is,user_id,content (plus others)

表视图(如果用户查看特定文章,则用于存储数据):

   view_id,article_id,user_id,date

现在,我正在尝试选择那些没有阅读特定文章的用户,例如 id 为 10 的文章。所以他们在视图表中没有条目。

我希望它现在更有意义。感谢您的回答。五。

4

3 回答 3

4
SELECT user_id FROM users u
LEFT JOIN views v ON v.user_id=u.user_id AND v.article_id = 10
WHERE v.user_id IS NULL
于 2012-06-06T10:30:06.093 回答
4

尝试这个:

SELECT user_id
FROM users
WHERE user_id NOT IN (
  SELECT user_id
  FROM views
  WHERE article_id = 10
)
于 2012-06-06T10:17:13.663 回答
3

doing NOT IN queries are not typically great for performance... instead, using LEFT JOIN and looking for NULL would be better.

select 
      u.User_ID
   from 
      Users U
         LEFT JOIN Views V
            on U.User_ID = V.User_ID 
           AND v.Article_ID = 10
   where
      V.User_ID IS NULL
于 2012-06-06T10:30:34.247 回答