2011-02-07 92 views
3

項的計數我有3個MySQL表:SQL COUNT返回使用特定屬性

  • 顏色
    • id_color(1,2,3,4)
    • 標題(「藍」, '紅', '橙', '青')
  • 主題
    • id_theme(1,2,3)
    • 標題( '黑暗的主題', '光的主題', '其他主題')
  • theme_color
    • id_theme
    • id_color

我需要打印所有主題正在使用的顏色列表。在同一記錄集中。我需要知道每種顏色使用多少主題。

最終的結果應該是這樣的:

color.id_color | color.title | COUNT(theme_color.id_theme) 
========================================================== 
1    | blue  | 2 
2    | red   | 1 
3    | orange  | 3 

(青色= 4不與任何的主題在theme_color)。我一直在用COUNT()方法嘗試幾種方法,但我只使用所有使用的主題的SUM得到一個記錄字段。

回答

4
SELECT color.id_color, color.title, COUNT(theme_color.id_theme) 
    FROM color INNER JOIN theme_color ON color.id_color = theme_color.id_color 
GROUP BY color.id_color, color.title 
+0

太棒了!它的工作原理...我刪除了GROUP BY color.title(只留下了GROUP BY color.id_color)...沒有字符串分組過於昂貴,無法在有數千條記錄時管理數據? – andufo 2011-02-07 22:52:20