Mysql 3带计数的表查询
我在处理3表查询时遇到了很大的困难 该场景是Mysql 3带计数的表查询,mysql,sql,sqlplus,Mysql,Sql,Sqlplus,我在处理3表查询时遇到了很大的困难 该场景是团队有许多或没有成员,一个成员可以有许多或没有任务。我想得到的是每个团队的任务数团队有自己的ID,成员在团队ID上将其作为FK持有,任务在任务上有成员ID 我想获取团队的报告。名称、计数(个人/团队)、计数(任务/团队) 我自己很困惑,我的想法是在团队和成员之间使用外部连接,所以我拥有所有团队和他们拥有的任何成员。从这里开始,我完全搞糊涂了。如果有人能给我指出正确的方向,这样我就有工作要做了,我会非常棒的我想你可以通过聚合做你想做的事情--count(
团队
有许多或没有成员
,一个成员
可以有许多或没有任务
。我想得到的是每个团队的任务数<代码>团队
有自己的ID
,成员
在团队ID
上将其作为FK持有,任务
在任务
上有成员ID
我想获取团队的报告。名称、计数(个人/团队)、计数(任务/团队)
我自己很困惑,我的想法是在团队和成员之间使用外部连接,所以我拥有所有团队和他们拥有的任何成员。从这里开始,我完全搞糊涂了。如果有人能给我指出正确的方向,这样我就有工作要做了,我会非常棒的我想你可以通过聚合做你想做的事情--count(distinct)
:
我认为您可以使用聚合做任何您想做的事情——以及count(distinct)
:
我认为您可以使用聚合做任何您想做的事情——以及count(distinct)
:
我认为您可以使用聚合做任何您想做的事情——以及count(distinct)
:
试试这个:
SELECT Team.name, COUNT(Person.id_person), COUNT(Tasks.id_task)
FROM Team t,
LEFT JOIN Person p on p.team_id = t.id_team
LEFT JOIN Tasks ts on ts.person_id = p.id_person
GROUP BY p.team_id, ts.person_id
试试这个:
SELECT Team.name, COUNT(Person.id_person), COUNT(Tasks.id_task)
FROM Team t,
LEFT JOIN Person p on p.team_id = t.id_team
LEFT JOIN Tasks ts on ts.person_id = p.id_person
GROUP BY p.team_id, ts.person_id
试试这个:
SELECT Team.name, COUNT(Person.id_person), COUNT(Tasks.id_task)
FROM Team t,
LEFT JOIN Person p on p.team_id = t.id_team
LEFT JOIN Tasks ts on ts.person_id = p.id_person
GROUP BY p.team_id, ts.person_id
试试这个:
SELECT Team.name, COUNT(Person.id_person), COUNT(Tasks.id_task)
FROM Team t,
LEFT JOIN Person p on p.team_id = t.id_team
LEFT JOIN Tasks ts on ts.person_id = p.id_person
GROUP BY p.team_id, ts.person_id
您想使用计数不同的
:
select t.name,
count(distinct m.memberid) as nummembers,
count(distinct tk.taskid) as numtasks
from team t left join
member m
on t.teamid = j.teamid left join
tasks tk
on tk.memberid = m.memberid
group by t.name;
您想使用计数不同的
:
select t.name,
count(distinct m.memberid) as nummembers,
count(distinct tk.taskid) as numtasks
from team t left join
member m
on t.teamid = j.teamid left join
tasks tk
on tk.memberid = m.memberid
group by t.name;
您想使用计数不同的
:
select t.name,
count(distinct m.memberid) as nummembers,
count(distinct tk.taskid) as numtasks
from team t left join
member m
on t.teamid = j.teamid left join
tasks tk
on tk.memberid = m.memberid
group by t.name;
您想使用计数不同的
:
select t.name,
count(distinct m.memberid) as nummembers,
count(distinct tk.taskid) as numtasks
from team t left join
member m
on t.teamid = j.teamid left join
tasks tk
on tk.memberid = m.memberid
group by t.name;
如果您提供的表格样本和预期结果表格会有很大帮助!:-)如果您提供的表格样本和预期结果表格会有很大帮助!:-)如果您提供的表格样本和预期结果表格会有很大帮助!:-)如果您提供的表格样本和预期结果表格会有很大帮助!:-)谢谢我之前已经到达了左边的连接,我错过了group by和count distinct,而不是普通计数!谢谢我之前已经到达了左边的连接,我错过了group by和count distinct,而不是普通计数!谢谢我之前已经到达了左边的连接,我错过了group by和count distinct,而不是普通计数!谢谢我之前已经到达了左边的连接,我错过了group by和count distinct,而不是普通计数!