我正在开发一个iOS应用程序,我有一个sqlite数据库,其中包含2个与1对多关系相关的表。
现在我想做一个查询,通过第一个表检索所有元素,同时按第二个表进行计数,这样我就可以将结果传递给我的视图。
CREATE TABLE track(
trackid INTEGER,
trackname TEXT,
trackartist INTEGER,
FOREIGN KEY(trackartist) REFERENCES artist(artistid)
);
CREATE TABLE artist(
artistid INTEGER PRIMARY KEY,
artistname TEXT
);
我想创建一个查询,返回所有艺术家姓名和每个艺术家姓名的曲目计数,以便我可以将此值传递给我的列表。
有可能吗?有帮助吗? 感谢Joe,您的代码适合我,但是可以添加新字段来存储计数结果吗?
很抱歉,我是否会在同一个查询中同时获取每个艺术家的所有曲目名称?
答案 0 :(得分:3)
SELECT a.artistname, count(*)
FROM track t
INNER JOIN artist a
on t.trackartist = a.artistid
GROUP BY a.artistid
答案 1 :(得分:1)
试试这个:
SELECT a.artistname,
(SELECT COUNT(*) FROM track t
WHERE t.trackartist = a.artistid)
FROM artist a