我有一個這樣的查詢:選擇不同的工作不正常(MySQL的)
SELECT DISTINCT r.name AS role, r.id AS role_id, u.id AS user_id, concat(u.firstname, '', u.lastname) AS name
FROM users u
INNER JOIN members m ON u.id = m.user_id
INNER JOIN member_roles mr ON m.id = mr.member_id
INNER JOIN roles r ON r.id = mr.role_id
WHERE m.project_id =11
我的目標是獲得獨特u.id
(USER_ID)。不幸的是,結果顯示兩個重複u.id
從這個多重連接。如果我刪除最後一個連接(INNER JOIN roles r ON r.id = mr.role_id
),則此查詢正常運行。但是我不知道爲什麼這是錯誤的,如果我將這一行添加到我的查詢。最後一個join
行是獲取角色名稱所必需的,所以我可以忽略它。有人能告訴我我查詢中的錯誤嗎?
整個SETOF值是唯一的,不只是第一個 –
給我們的樣本數據,並通過sqlfiddle預期的結果。 – user4035
如果用戶有多個角色,您希望查詢返回什麼內容? –