我正在查詢,我有點卡住了。選擇具有最高優先級的行
這裏是我的查詢:
SELECT *
FROM
routine_actions AS ra
JOIN
routines AS r ON r.id = ra.routine_id
JOIN
account_routines AS ar ON ar.routine_id = r.id
JOIN
accounts AS a ON a.id = ar.account_id
WHERE
(ra.last_run + INTERVAL ra.interval_minutes MINUTE <= NOW() OR ra.last_run IS NULL)
AND
r.created_at + INTERVAL r.runtime_days DAY > NOW()
我想要做的事:
的account
有很多套路。一次只能使用一個routine
,這是最高優先級的routine
。包含優先級列的表是account_routines
,因爲帳戶可以重複使用例程並指定不同的優先級。
數字越大,優先級越高。目前查詢是從所有帳戶中提取所有例程。但我只需要從每個帳戶中獲得最高優先級的例程。
這怎麼可能?我不需要解決方案,只需在哪裏尋找,以便我可以找出如何解決這個問題。
你試過了'ORDER BY ar.priority desc'? –
'ORDER BY'仍然會包含較低優先級的例程嗎?我正在使用多個帳戶,每個帳戶只需要1個例程。如果我使用'ORDER BY',那會給出一個非常複雜的結果集。 – BugHunterUK