У меня есть запрос вроде этого:Выберите отчетливый не работает правильно (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
Если у пользователя несколько ролей, что вы хотите вернуть запрос? –