1

私は2つのテーブルを持っています:

テーブル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 がそのレコードの最大値であるテーブル Workflow 内のすべてのレコードを返そうとしています。私の結果は次のようになります。

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

助けてください、私は立ち往生しています:)

4

1 に答える 1

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
        )
于 2012-06-06T08:46:40.583 に答える