Php 查询不';我无法获取所有结果

Php 查询不';我无法获取所有结果,php,mysql,sql,Php,Mysql,Sql,我的一个查询有点问题,它不能获取所有的结果。它至少应该有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没有发现任何错误

我的一个查询有点问题,它不能获取所有的结果。它至少应该有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没有发现任何错误。提前谢谢
左侧为文章id,右侧为表nk_article_category中的类别id。有一个结果向上,但没有看到显示整个表的点

我在您发布的查询数据图像中看到的内容,您的查询返回正确的结果。所有行都是不同的(如果多行中的article\u id和category\u id都相同,则视为重复)

顺便说一句,您可以将发布的查询更改为
内部联接
,而不是使用子查询,如

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;

18,20是两个不同的文章ID您可以发布您希望看到的数据行吗?这样我们可以将其与您的查询进行比较。以及这两个表的结构。另外,单独运行子查询,看看它会得到什么结果。刚刚注意到你发布了一个图像,但出于某种原因,我永远看不到这些图像-不确定它显示了什么。不确定如何整齐地显示它,但子查询确实返回了正确的行。凯,对不起,是我的公司防火墙阻止了图像,但我设法绕过了它。只需运行子查询,看看它是否返回您期望的ID值。然后用返回的ID值列表替换子查询,并查看返回的内容。Hey@PhillipXT通过替换子查询找到了sql结构问题,谢谢!