在连接表中选择Max

时间:2012-06-06 08:34:04

标签: mysql sql

我有两张桌子:

workflow

Request_Id, Step ID
123, 4
123, 7
198, 5

Steps

Step_Id, Step_num
4, 30
7, 12
5, 172

我正在尝试返回表工作流中的所有记录,其中Steps.step_num是该记录的最大值。 我的结果应该是这样的:

Request_Id, Step_Id, Step_Num
123, 4, 30
198, 5, 172

我试过这个,但我没有得到正确的Step_ID:

select request_id, step_id,max(step_num) from
(
select ww.request_id as request_id, ww.step_id as step_id, st.step_num as step_num
from workflow ww
left join steps st on ww.step_id=st.step_id) as s
group by request_id

请帮忙,我被卡住了。)

1 个答案:

答案 0 :(得分:1)

SELECT  *
FROM    (
        SELECT  DISTINCT request_id
        FROM    workflow
        ) wd
JOIN    steps s
ON      s.step_id =
        (
        SELECT  si.step_id
        FROM    workflow wi
        JOIN    steps si
        ON      si.step_id = wi.step_id
        WHERE   wi.request_id = wd.request_id
        ORDER BY
                stem_num DESC
        LIMIT 1
        )