0

我是数据库新手。我正在使用mysqlite3. 我在表中有ArtistName,SongTitleAlbumTitle字段。Music数据库的主要目的是查询它并返回所有歌曲少于 3 首的艺术家。

为了实现这一点,我认为我需要某种“歌曲计数”条目,每次添加来自同一艺术家的歌曲时,该条目都会增加。但是,我不确定如何创建动态条目。我知道 AUTO_INCREMENT 关键字,它具有我正在寻找的动态属性,但没有条件递增。

想法?

4

2 回答 2

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)
于 2013-03-11T20:28:20.423 回答
1

您不需要“计数”字段。试试这个...

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

这是假设每首歌只有一个条目。

于 2013-03-11T20:29:32.943 回答