2009-02-02 50 views
0

我有以下查詢。在MySQL查詢中使用'distinct'

"SELECT p.author_name, p.author_id, DISTINCT p.topic_id, t.title 
            FROM `ibf_posts` p, `ibf_topics` t WHERE p.topic_id = t.tid ORDER BY pid DESC LIMIT 8" 

當我運行它,我得到以下MySQL錯誤:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DISTINCT p.topic_id, t.title FROM `ibf_posts` p, `ibf_topics` t WHERE p' at line 1 

如果我刪除DISTINCT關鍵字,然後將查詢的工作沒有問題。

我在做什麼錯?

該方案來自Invision電源板的帖子和主題表。我正在嘗試獲取最新帖子的最後8個主題的標題。在最新的最新帖子列表中,我不希望同一主題出現一次以上。我想要一個獨特的標題列表。

表:ibf_posts -pid -author_name -author_id -topic_id

表:ibf_topics -tid -title

TID是相同topic_id

回答

0

獨特需要爲前p.author_name。在這種情況下,你不能只選擇p.topic_id。如果你想要做的是我認爲的那樣,你應該查找GROUP BY子句。

+0

我試過GROUP BY,它沒有給我正確的行集。 – user58670 2009-02-02 03:40:42

7

這是

SELECT DISTINCT ... 

你不僅可以爲單個列指定DISTINCT;它只適用於將完整的重複記錄保留在結果集外。