我有一個名爲releases的表,它是'音樂'數據庫的一部分。該表由兩列組成; cd_id
,band_id
MySQL - 與請求值相關聯的多個值
我想列出每個cd所涉及的cd_id和波段數,其中兩個或多個band_id
與一個cd_id
值關聯。
你能幫我解釋一下嗎?先謝謝你。
我有一個名爲releases的表,它是'音樂'數據庫的一部分。該表由兩列組成; cd_id
,band_id
MySQL - 與請求值相關聯的多個值
我想列出每個cd所涉及的cd_id和波段數,其中兩個或多個band_id
與一個cd_id
值關聯。
你能幫我解釋一下嗎?先謝謝你。
這是一個聚集COUNT()
與HAVING
子句:
SELECT
cd_id,
count(*) AS numbands
FROM releases
GROUP BY cd_id
HAVING numbands >= 2
加上GROUP BY cd_id
的COUNT(*)
返回band_id
每cd_id
數量,並且爲了與2+ band_id
限制這些到的版本中,一個HAVING
子句指定numbands
(賦予計數值的別名)>= 2
。
請注意,這裏假定每個band_id
僅按cd_id
列出一次。如果情況並非如此,獲得獨特的樂隊每張CD,使用
COUNT(DISTINCT band_id) AS numbands
,而不是COUNT(*) AS numbands
。
假設發行不爲CD_ID
select CD_ID, count(*)
from releases
GROUP BY CD_ID
HAVING count(*) > 1
列出相同的頻段兩次