0

私はデータベースが初めてです。を使って音楽を整理していmysqlite3ます。テーブルにArtistName、、、SongTitleおよびAlbumTitleフィールドがありMusicます。データベースの主な目的は、クエリを実行して、3 曲未満のアーティストをすべて返すことです。

これを実現するには、同じアーティストの曲を追加するたびに増加する、ある種の「曲数」エントリが必要になると思います。ただし、動的エントリを作成する方法がわかりません。私が探している動的プロパティを持つ AUTO_INCREMENT キーワードは知っていますが、条件付きインクリメントはありません。

考え?

4

2 に答える 2

1

「カウント」フィールドは必要ありません。これを試して...

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

これは、各曲に1つのエントリしかないことを前提としています。

于 2013-03-11T20:29:32.943 に答える
1

リクエストにsongCount列が不要なものがない場合を除いて、3曲未満のアーティストを簡単に取得できますが、次のクエリを使用します。

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

artistnameこれにより、合計3曲未満の曲数を持つすべてのアーティストのが返されます。

次に、これを拡張したい場合は、以下を使用して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 に答える