如何在选择COUNT()函数时连接SQL表?

Cod*_*ile 2 sql sqlite join

我有两个数据库表,'列表'和'注释'.
列表包含列_id,listname
Notes具有列_id,checked,list_id(它是Lists._id的外键),以及更多与此问题无关的列.

我想创建一个返回四列的查询:
Lists._id,Lists.listname,此列表中所有已检查Notes的计数,此列表中所有Notes的计数.

查询应返回列表中的所有条目.

我可以使用以下查询单独获取计数和_ids和列表名称

SELECT _id, listname FROM Lists
SELECT count(checked) FROM Notes WHERE checked='1' and list_id=foo_id
SELECT count(*) FROM Notes WHERE list_id=foo_id
Run Code Online (Sandbox Code Playgroud)

在这些语句中,foo_id指的是我想要计算的列表的_id和总项目.

有人可以告诉我如何将这些全部放入一个查询中吗?

为计数列投放AS的加分点.

Pet*_*ang 8

编辑:添加IFNULL以返回0为count_checked外部联接返回没有行; 添加了别名.

SELECT
  l._id,
  l.listname,
  IFNULL( SUM(n.checked), 0 ) AS count_checked,
  COUNT(*) AS count_total
FROM lists l
LEFT OUTER JOIN notes n ON ( l._id = n.list_id )
GROUP BY l._id, l.listname
Run Code Online (Sandbox Code Playgroud)