2010-08-26 77 views
2

這裏是我的sql語句使用通過DESC和ASC與集團爲了通過

SELECT DISTINCT article_categories.category_id, 
    article_id,article_title,article_intro,article_content, 
    category_name_ar 
FROM articles,article_categories 
WHERE articles.category_id=article_categories.category_id 
    AND article_type='admin' 
    AND category_case='active' 
GROUP BY article_categories.category_id 
ORDER BY article_categories.category_id ASC, 
      article_date,article_time DESC 
LIMIT 10 

我想取回第一DISTINCT 10個類別。另外,我希望檢索articles.category_id等於article_categories.category_id的同等文章。到目前爲止,結果是好的,但我期望的是按category_id排序結果,同時按article_date,article_time DESC排序結果。

任何援助將提前意識到

+0

如果我理解你的需求:.... ARTICLE_DATE DESC,article_time DESC? – 2010-08-26 07:41:28

+0

正確,並在同一時間article_categories.category_id ASC,這是明確的你嗎? – Hassan 2010-08-26 07:51:39

+0

爲了使它更清晰,我想通過category_id ASC命令結果。此外,我想通過使用article_date DESC,article_time DESC – Hassan 2010-08-26 07:56:41

回答

2
SELECT distinct c.category_id,... 
FROM articles a,article_categories c 
WHERE a.category_id=c.category_id 
AND ... 
AND a.article_id in 
(SELECT max(a1.article_id) 
FROM articles a1 
 WHERE a1.category_id=c.category_id) 
ORDER BY c.category_id ASC 

請更換......你需要額外的領域和條件。

+0

獲得每個類別下的最後一個添加的文章。我必須使用group by,因爲它會一直重複category_name_ar,我不需要這樣做。我在尋找的是category_id排序的前十個article_categories。此外,每個類別下最後添加的文章 – Hassan 2010-08-26 08:07:42

+0

1.您的查詢沒有返回您所期望的事實並不意味着它應該由group by來解決。 2.排序依據不能用於獲取最新記錄。 還有一個問題:你是否將記錄中的article_id增加記錄? – spbfox 2010-08-26 08:59:39

+0

是的,我確實...... – Hassan 2010-08-26 09:03:21

0

只添加遞減

ORDER BY article_categories.category_id ASC, 
      article_date DESC,article_time DESC 
+0

我試過了,但它仍然給我相同的結果 – Hassan 2010-08-26 08:04:24

+0

你確定,它需要工作 – 2010-08-26 08:23:18

1

我得到了它

SELECT DISTINCT article_categories.category_id, 
    article_id,article_title,article_intro,article_content, 
    category_name_ar 
FROM articles,article_categories 
WHERE articles.category_id=article_categories.category_id 
    AND article_type='admin' 
    AND category_case='active' 
ORDER BY article_categories.category_id ASC, 
      article_date desc,article_time DESC 
LIMIT 10 

感謝所有的建議,它幫助了很多