34,591
社区成员
发帖
与我相关
我的任务
分享
process_table // 项目进度表,字段如下
id: // 进程id ( 起始 100400-100410)
description: // 进度名 如:100400:申报 100401:审查
org_table // 区县表,字段如下
id: // 区县id
org: // 区县名
user_table //用户表,字段如下
id: //用户id
org: //用户所在区县 (即 org_table.org = user_table.org )
projects_table // 项目表,字段如下
id : // 项目Id
process : // 进程
creator : // 项目的创建者(与user表对应 即projects.creator = user_table.id)
100400
想法是求出: id=70的区县处于各个进度的项目数量有多少,要将所有进度都列出,如果没有处于该进度的项目则为0,比如:
进度 项目数
申报 7
审查 0
……
下发证书 1
select 进度=b.description,项目数=count(1)
from projects_table a
left join process_table b on a.process =b.id
left join user_table c on a.creator =c.id
left join org_table d on c.org=d.org
where d.id=70 group by b.description
--对于关系你是知道的,直接连接查询,加上where条件即可。
select 进度=b.description,项目数=count(1)
from projects_table a left join process_table b
on a.process =b.id group by b.description