关于sql lite xcode

时间:2015-09-19 15:55:22

标签: sqlite

我正在开发一个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,您的代码适合我,但是可以添加新字段来存储计数结果吗?

很抱歉,我是否会在同一个查询中同时获取每个艺术家的所有曲目名称?

2 个答案:

答案 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