首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MYSQL -未获取正确的最大数据

MYSQL -未获取正确的最大数据
EN

Stack Overflow用户
提问于 2013-04-26 21:21:50
回答 3查看 62关注 0票数 3

我有一份包含中介机构的案例清单。所有代理都包含分配有状态的任务。0=完成,1=正在进行,2=过期。

我正在尝试显示所有情况下是否有任何任务逾期。目前,我的查询显示状态为1,尽管有一些任务过期了。

SQL FIDDLE HERE http://sqlfiddle.com/#!2/a4394/3

我不知道为了提取正确的数据需要进行哪些更改。有什么想法吗?

任何帮助都将不胜感激!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-26 21:30:11

忽略您正在编写的只有MySQL的SELECT,您的连接是错误的;您在caa.ID上加入了cc.case_ID,而您实际上需要caa.case_ID

代码语言:javascript
复制
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的评论,都值得从提出更清晰,更可维护,以及希望更便携/未来兼容的角度进行思考。

票数 1
EN

Stack Overflow用户

发布于 2013-04-26 21:29:53

您的查询是正确的,问题是您正在从多个表中获取信息,但是,您在所有表中都没有足够的记录,基本上您的cases_agency_association表中的ID最多为6,而status为2的cases_task_association表中的记录的ID都大于6……

票数 1
EN

Stack Overflow用户

发布于 2013-04-26 21:27:28

这不就解决了你的基本问题吗:

代码语言:javascript
复制
select * from `cases_task_association` where status =2;

这没有连接等,但上面的查询是提供所有过期和未完成的案例的基础。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16237561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档