1

複雑なクエリを作成する必要があります。私はテーブルを持っています:

CREATE TABLE IF NOT EXISTS tracks
     ( id INTEGER PRIMARY KEY, path TEXT,
     title TEXT, artist TEXT,
     album TEXT, genre TEXT, 
    duration INTEGER, rating INTEGER );

汚い質問のタイトルで申し訳ありませんが、もっと簡単に説明する方法がわかりません。

質問:リクエストされたアーティストのアルバムのリストを表示する方法と、表示されたアルバムごとに、現在のアルバムでアーティストをリクエストしたトラックの数を1つのクエリで計算します。

私はこのようなことを試しました:

SELECT albtbl.album as album, albtbl.artist as artist, 
( SELECT count(*) FROM trackstbl WHERE trackstbl.artist = albtbl.aritst ) as tracksCount 
FROM ( SELECT tbl.album as album, tbl.artist as artist, count(title) as tracksCount FROM tracks as tbl  WHERE tbl.artist = 'requested_artist'
 GROUP BY tbl.album ) as albtbl, FROM tracks as trackstbl ORDER BY album ASC

しかし、コンパイルされていません:

SQLiteException:「FROM」の近く:構文エラー:

4

3 に答える 3

2

わからない、なぜこれが複雑なのか。以下のクエリは、検索アーティストの各アルバムのトラック数を返すはずです。

     select artist, album, count(*) as tracksCount
     from tracks
     where artist = 'requested_artist'
     group by artist, album;
于 2012-12-01T21:57:34.053 に答える
1
select artist, album, count(1) as countTracks
from tracks
where artist = @requestedArtist
group by artist, album
于 2012-12-01T21:59:31.920 に答える
0

それほど複雑ではありませんが、読みにくいです。私は一目でエラーを見ました。ここ:

as albtbl, FROM tracks 

カンマは余分です。したがって、これに変更します。

as albtbl FROM tracks 

それが役に立てば幸い。

于 2012-12-01T21:57:50.423 に答える