我有两张表我想从中获取信息。
登录表 - 包含员工列表
项目表 - 包含项目
简而言之,我正在尝试编写一个查询,该查询将选择撰稿人并对每个撰稿人执行一个子查询,该子查询将返回一个名为“open_projects”的字段。这个,我可以开始使用下面的sql:
select web_login_id,
(select count(project_web_id) from project
where copywriter = web_login_id
and (`status` = 'open' or `status` = 'qual')) as open_projects from login
where roles like '%copywriter%'
and tierLevel like '%c1%'
order by open_projects asc
这会返回类似:
1982983 3
1982690 22
2987398 5
这样做的问题是,有时 5 或 6 个项目将属于同一个客户,并且实际上并没有被处理,因为它们是以排队的方式处理的。
我的问题是如何修改上面的 sql 以便子查询将基于 client_login_id 字段进行 GROUP 子集。
这个 sql 给了我一个错误:子查询返回超过 1 行
select web_login_id,
(select count(project_web_id) from project
where copywriter = web_login_id
and (`status` = 'open' or `status` = 'qual') group by client_login_id) as open_projects from login
where roles like '%copywriter%'
and tierLevel like '%c1%'
order by open_projects asc