我对我所做的查询有点问题,它没有获取所有结果。它应该至少提出3行,但只提出一行:
SELECT * FROM n_news WHERE article_id IN
(SELECT DISTINCT article_id FROM nk_article_category
WHERE category_id IN (2,10,11,12))
ORDER BY article_featured DESC,article_published DESC
任何人都知道我做错了什么? MySQL没有发现任何错误。提前致谢 左边是表nk_article_category中的article_id和right = category_id。有一个结果,但没有看到显示整个表的重点
答案 0 :(得分:0)
根据您发布的查询数据图片我看到的内容,您的查询返回正确的结果。行都是不同的(如果article_id和category_id在多行中相同,则会被认为是重复的。)
顺便说一句,您可以将发布的查询更改为INNER JOIN
,而不是使用
SELECT t1.*
FROM n_news t1
INNER JOIN nk_article_category t2
ON t1.article_id = t2.article_id
AND t2.category_id IN (2,10,11,12)
ORDER BY t1.article_featured DESC, t1.article_published DESC;