我有一份包含机构的案件清单。所有机构都包含分配给它的状态的任务。0 = 完成,1 = 进行中,2 = 逾期。
如果有任何任务逾期,我会尝试显示所有情况。目前我的查询显示状态为 1,即使有一些任务过期。
SQL FIDDLE 在这里http://sqlfiddle.com/#!2/a4394/3
我不知道我需要更改什么才能提取正确的数据。有任何想法吗?
任何帮助将不胜感激!!
我有一份包含机构的案件清单。所有机构都包含分配给它的状态的任务。0 = 完成,1 = 进行中,2 = 逾期。
如果有任何任务逾期,我会尝试显示所有情况。目前我的查询显示状态为 1,即使有一些任务过期。
SQL FIDDLE 在这里http://sqlfiddle.com/#!2/a4394/3
我不知道我需要更改什么才能提取正确的数据。有任何想法吗?
任何帮助将不胜感激!!
您的查询是正确的,问题是您从多个表中获取信息,但是,所有这些表中没有足够的记录,基本上您cases_agency_association
表上的 ID 最多为 6,并且cases_task_association
表中的记录status
是 2,所有的 ID 都大于 6...
忽略您正在编写 MySQL-only SELECT
,您的连接是错误的;当你真正想要cc.case_ID
的时候加入:caa.ID
caa.case_ID
SELECT cc . * , a.ID, MAX(cta.status) AS current_status
FROM cases_complete cc, agencies a, cases_agency_association caa,
cases_task_association cta
WHERE cc.case_ID = caa.case_ID
AND caa.agency_ID = a.ID
AND cta.agency_association_ID = caa.ID
GROUP BY cc.case_ID
然而,@meewoK 的方法和关于不滥用的评论GROUP BY
都值得从提出更清晰、更可维护并且希望更便携/未来兼容的角度考虑。
这不能解决您的基本问题:
select * from `cases_task_association` where status =2;
这没有连接等,但上面的查询是提供所有过期且未完成的案例的基础。