可以改进此SQL查询吗?

时间:2015-10-29 08:51:47

标签: mysql sql

有新闻和类别。新闻可以属于许多类别,或根本没有类别。我需要查询不属于特定类别的所有新闻(即2)(如果新闻属于类别2和3,我们仍然不想要它)。

似乎我用这种方式解决了它,但我对SQL不是很有经验,所以非常感谢任何想法和批评。对不起,也许是琐碎而无趣的问题。

SELECT * FROM news n
LEFT JOIN news_cats nc ON n.id = nc.cat_id 
WHERE n.id NOT IN (SELECT news_id FROM news_cats WHERE news_cats.cat_id = 2)
GROUP BY n.id;

1 个答案:

答案 0 :(得分:1)

SELECT * FROM news n
LEFT JOIN news_cats nc ON n.id = nc.cat_id 
WHERE news_cats.cat_id <> 2
GROUP BY n.id;