繁体   English   中英

不使用GROUP BY子句的类别的MySQL MAX函数

[英]MySQL MAX function for categories without using GROUP BY clause

我很难弄清楚如何在MySQL中编写正确的代码。

这是我到目前为止所拥有的...

SELECT ProjectSteps.ProjectID, ProjectSteps.StepID, Step.StepName, Step.Definition 
FROM ProjectSteps, Step 
WHERE ProjectSteps.ProjectID = 
    (SELECT MAX(ProjectSteps.StepID) OVER ProjectSteps.ProjectID 
     FROM ProjectSteps 
     WHERE ProjectSteps.ProjectID IN (1, 2, 3) 
     )
ORDER BY ProjectSteps.ProjectID;

对于我的查询,我有2个表

STEP (StepId, StepName, Definition)

ProjectSteps (StepID, ProjectId, StartingDate, EndingDate)

对于每个项目,我必须同时获取步骤名称和最后一步的步骤定义。

如:

Project ID  StepId   StepName  Definition

我不能使用GROUP BY子句:(

希望有人能做对!

我仍然不确定为什么不能使用group by ,但这是使用correlated subquery另一种选择:

select ps.projectid, s.stepid, s.stepname, s.definition
from projectsteps ps 
  join step s on ps.stepid = s.stepid
where ps.projectid in (1,2,3)
  and s.stepid = (select stepid
                  from projectsteps ps2 
                  where ps.projectid = ps2.projectid
                  order by ps2.stepid desc
                  limit 1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM