2013-03-11 37 views
0

我是數據庫的新手。我正在使用mysqlite3組織音樂。我在Music表中有ArtistName,SongTitleAlbumTitle字段。數據庫的主要目的是查詢它並返回所有歌曲少於3首的藝術家。構建一個數據庫,計算類似的條目

爲了達到這個目的,我想我需要某種「歌曲數量」條目,每當我從同一個藝術家添加一首歌曲時,該條目就會增加。但是,我不確定如何創建動態條目。我知道AUTO_INCREMENT關鍵字,它具有我正在尋找的動態屬性,但不是有條件遞增的。

想法?

回答

1

除非我很想念你的要求的東西,你不需要songCount列,你可以很容易地得到具有小於3首歌曲,但使用以下查詢藝術家:

select artistname 
from music 
group by artistname 
having count(SongTitle) <3 

這將返回artistname對於每首歌曲總數少於三首歌曲的藝術家而言。

然後,如果你想在這個擴展,你可以使用,這將返回所有列從music表所在的藝術家有不到3首歌曲如下:

select m1.* 
from music m1 
where exists (select artistname 
       from music m2 
       where m1.artistname = m2.artistname 
       group by artistname 
       having count(SongTitle) <3) 
1

你不需要一個「計數」字段。試試這個...

SELECT ArtistName 
FROM Music 
GROUP BY ArtistName 
HAVING Count(ArtistName) < 3 

這是假設每首歌曲只有一個條目。

相關問題