我需要做一个复杂的查询。我有一张table:
CREATE TABLE IF NOT EXISTS tracks
( id INTEGER PRIMARY KEY, path TEXT,
title TEXT, artist TEXT,
album TEXT, genre TEXT,
duration INTEGER, rating INTEGER );
我不知道该怎么解释,我也不知道该怎么解释。
问:如何显示所请求的艺术家的专辑列表,并为每个显示的专辑计算在单个查询中当前专辑中已请求艺术家的曲目计数。
我尝试过这样的东西:
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条答案
按热度按时间cgvd09ve1#
不知道为什么这很复杂。下面的查询应该返回您的轨道计数为每个专辑的搜索艺术家:
0lvr5msh2#
j2cgzkjk3#
它并不复杂,但它很难阅读。我一眼就看出了错误。这里:
逗号是额外的。把它改成这样:
希望能帮上忙。
icomxhvb4#
我们可以通过子查询的帮助来实现这一点,下面是示例:
上面的查询为所请求的艺术家选择不同的专辑和艺术家对,然后它使用子查询来获得每个专辑和艺术家组合的曲目数量的计数。