2010-02-21 17 views
1

一次,我用這個查詢,以便選擇項目的數量來創建的頁面列表:在它選擇行,而不是內容的數量

SELECT COUNT(id) FROM lists WHERE online = 1 

但現在它已經成爲困難的,因爲有更多的條件。現在我需要知道在線列表中包含帶有列表項的字幕的列表數量。

我嘗試以下,但它給的,而不是一個數量多行:

SELECT COUNT(lists.id) 
FROM lists 
INNER JOIN subtitles ON subtitles.list_id = lists.id 
INNER JOIN listitems ON listitems.subtitle_id = subtitles.id 
WHERE lists.online = 1 
GROUP BY lists.id 

當然,我知道這是可以計算與PHP列表的數量,但它會大大加快只選擇MySQL列表的數量。

那麼,有什麼辦法可以選擇行數而不需要獲取它們的實際內容嗎?

回答

3

這可能是你想達到什麼:

SELECT COUNT(DISTINCT(lists.id)) 
FROM lists 
INNER JOIN subtitles ON subtitles.list_id = lists.id 
INNER JOIN listitems ON listitems.subtitle_id = subtitles.id 
WHERE lists.online = 1 

相反的分組名單中,你可以簡單地採取不同的內加入計數。如果計數是你想要得到的,那就更容易了。

+0

謝謝,就是這樣:]。我嘗試過'DISTINCT COUNT(lists.id)',但我不知道可以在COUNT()內使用它' – Harmen 2010-02-21 16:28:28

相關問題