如果没有评论,请选择(获取)文章

时间:2014-07-19 14:57:34

标签: php mysql

我想要一篇文章,如果它没有评论(例如,其中count(articleId)= 0)。 我的SQL查询如下。我应该如何修改它?

select comment.*, article.title from article
left join comment on comment.articleid=article.articleid where article.catid=5

2 个答案:

答案 0 :(得分:0)

你很亲密。你只需要检查没有匹配:

select a.title
from article a left join
     comment c
     on c.articleid = a.articleid
where a.catid = 5 and c.articleid is null;

我对您的查询做了一些更改:

  • 我从select删除了评论列。如果没有匹配,为什么会有一堆NULL值。
  • 我添加了表别名(缩写)。这些使查询更容易编写和阅读。
  • 我添加了comment表中没有匹配条件。

答案 1 :(得分:0)

您可以使用NOT EXISTS而不是加入两个表:

SELECT * FROM article a WHERE NOT EXISTS
    (SELECT articleid FROM comments c WHERE c.articleid = a.articleid)