У меня есть 2 таблицы Account
и Roles
. Я хочу получить всех пользователей, независимо от того, имеют ли они какую-либо роль или нет. Но когда я запускаю запрос ниже, он возвращает только пользователей, которые играют какую-либо роль в таблицах Roles
, но не возвращает пользователей, которые не имеют никакой роли.
Я проверяю, есть ли какое-либо значение в переменной @role_id, тогда оно сравнивается с @role_id, иначе сравнивается с текущим значением. Это правильно?
SELECT
a.user_id, a.username, a.first_name, a.last_name, a.division_id,
a.dept_id, a.email, a.password, a.IsAdmin, a.status, a.cdate, a.mdate
FROM
Account AS a
LEFT JOIN
Roles r ON a.user_id = r.user_id
WHERE
r.role_id = (CASE
WHEN @role_id IS NOT NULL AND @role_id <> '' THEN @role_id ELSE r.role_id
END)