【问题标题】:Complex query on sql lite xcodesqlite xcode上的复杂查询
【发布时间】:2015-12-16 16:15:35
【问题描述】:

我正在开发一个 iOS 应用程序,我有一个 sqlite 数据库,其中包含 2 个通过一对多关系关联的表。

现在我想做一个查询,按第一个表检索所有元素,同时按第二个表进行计数,以便我可以将结果传递到我的视图中。

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

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

【问题讨论】:

  • 请添加您的表结构、示例数据、预期输出和您遇到的查询。
  • 结构好。但包括样本数据和期望输出

标签: sqlite


【解决方案1】:
SELECT a.artistname, count(*)
FROM track t
INNER JOIN artist a
   on  t.trackartist = a.artistid
GROUP BY a.artistid

【讨论】:

    【解决方案2】:

    试试这个:

    SELECT a.artistname,
        (SELECT COUNT(*) FROM track t
        WHERE t.trackartist = a.artistid)
    FROM artist a
    

    【讨论】:

      猜你喜欢
      • 2011-02-14
      • 1970-01-01
      • 2012-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多