[英]Can this SQL query be improved?
有新闻和类别。 一条新闻可以属于多个类别,也可以根本没有类别。 我需要查询不属于特定类别(即 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;
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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.