0
可以這樣做SELECTion嗎?僅基於QTZ_USERS UUID,我可以使用GROUP_ID「foreach」所有成員來查找最高優先級的GROUP_ID嗎?
我該怎麼辦?
可以這樣做SELECTion嗎?僅基於QTZ_USERS UUID,我可以使用GROUP_ID「foreach」所有成員來查找最高優先級的GROUP_ID嗎?
我該怎麼辦?
假設你想從所有表的詳細信息,然後將它們連接在一起,並以一個子查詢,以獲得最新的優先級爲每用戶。
像下面這樣(雖然選擇你想要的實際列而不是使用SELECT *)。
SELECT *
FROM QTZ_USERS u
INNER JOIN MEMBERSHIPS m
ON u.UUID = m.UUID
INNER JOIN GROUPS g
ON m.GROUP_ID = g.GROUP_ID
INNER JOIN
(
SELECT m.UUID, MAX(g.PRIORITY) AS max_priority
FROM MEMBERSHIPS m
INNER JOIN GROUPS g
ON m.GROUP_ID = g.GROUP_ID
GROUP BY m.UUID
) sub0
ON m.UUID = sub0.UUID
AND g.PRIORITY = sub0.max_priority
原則上你可以用GROUP BY
和聚合函數做這個,這裏MAX。
SELECT
m.UUID,
MAX(g.PRIORITY)
FROM
memberships m
INNER JOIN
groups g
ON
m.GROUP_ID = g.GROUP_ID
GROUP BY
m.UUID;
如果您需要GROUP_ID,那麼你可以使用子查詢
SELECT
m.UUID,
g.GROUP_ID
FROM
memberships m
INNER JOIN
groups g
ON
m.group_id = g.group_id
WHERE
g.priority = (
SELECT
MAX(g2.priority)
FROM
groups g2
WHERE
g.group_id = g2.group_id
GROUP BY
g2.group_id
);
你不能按優先順序排序嗎? – Bardicer