我正在查询,我有点卡住了。选择具有最高优先级的行
这里是我的查询:
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