2014-10-31 139 views
0

我對我做的查詢有點問題,它不會獲取所有結果。它應該至少拿出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 

screenshot DB

任何人的想法是什麼,我做錯了什麼? MySQL沒有發現任何錯誤。在此先感謝 左是article_id和右= category_id在表nk_article_category中。有一個結果的方式,但沒有看到點顯示整個表

+1

18,20子查詢中兩個不同的文章IDS – radar 2014-10-31 22:12:59

+0

你能張貼你期待看到的數據行更改發佈查詢到INNER JOIN代替?這樣我們可以將它與您的查詢進行比較。還有2張桌子的結構。另外,請自行運行子查詢,查看結果。剛剛注意到你張貼了一張圖片,但由於某種原因,我無法看到這些圖片 - 不知道它顯示的是什麼。 – 2014-10-31 22:14:02

+0

不知道如何整齊地顯示,但子查詢確實返回正確的行 – 2014-10-31 22:20:26

回答

0

我看到您的發佈查詢數據圖像,您的查詢返回正確的結果。行都是不同的(如果article_id和category_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;