Доброе время суток,
Есть 3 табл.: «roles» (табл. c ролями), «roles_user» (связывающая табл), «user» (табл. c пользователями)
Мне нужно вытянуть всех пользователей с их ролями
Я создал запрос, который это делает:
SELECT tt1.*
,roles.name
FROM (
SELECT MAX(role_id) as maxrol
,tt.*
FROM (
SELECT users.*
,roles_users.role_id
FROM users
left join roles_users
on roles_users.user_id = users.id
left join roles
on roles_users.role_id = roles.id
) tt
GROUP BY tt.id
ORDER BY tt.role_id
) tt1
left join roles
on tt1.maxrol = roles.id
Результат запроса:
Вопрос:
Можно ли его упростить?
Как то так (не проверял, ибо создавать таблицы по картинкам тяжело):
SELECT U.*, R.name
FROM users U
LEFT JOIN (
SELECT user_id, MAX(role_id) as maxrol
FROM roles_users
GROUP BY user_id
) RU ON RU.user_id=U.id
LEFT JOIN roles R ON R.id=RU.maxrol
Можно как-то так написать:
SELECT
u.username,
r.name
FROM
users u,
roles r,
users_roles l
WHERE l.user_id = u.id
AND l.role_id = r.id;
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Добрый день! Я только закончил изучение PHP и MySQL и сейчас тренируюсь с созданием первого сайтаМожете объяснить порядок создания фильтра по городам?...
ЗдравствуйтеУ меня есть база данных, в которой время от времени меняются столбцы(добавляются, удаляются)
Ребят как такой же скрипт поместить в тег SELECTЭтот скрипт у меня выводит категории на сайте
При попытке подключиться возникает вот такая ошибка: