Запросы пользователей, не отвечающие критериям заявления WHERE
Я извлекаю пользователей из базы данных для отображения в раскрывающемся списке. Мне нужны все пользователи, которые соответствуют правильному идентификатору группы и которые также играют одну из двух определенных ролей. Вот утверждение, которое я имею до сих пор:
SELECT a.USER_ID AS userid, a.GROUP_ID, a.ROLE,
b.ID, b.NAME, b.LAST_NAME FROM b_sonet_user2group a
INNER JOIN b_user b ON a.USER_ID = b.ID
WHERE a.GROUP_ID = $groupid
AND a.ROLE = 'A' OR a.ROLE = 'E'
Это привлекает пользователей, которых даже нет в группе, и я вывел $groupid, и он показывает правильное число. Я делаю что-то не так с разделом WHERE этого запроса? Я также получаю повторение одного пользователя, когда он появляется только один раз в списке пользователей, который соответствует этим критериям. Если я что-то упустил, просто дайте мне знать.
Спасибо
2 ответа
Решение
Можете ли вы попробовать это:
SELECT a.USER_ID AS userid, a.GROUP_ID, a.ROLE,
b.ID, b.NAME, b.LAST_NAME FROM b_sonet_user2group a
INNER JOIN b_user b ON a.USER_ID = b.ID
WHERE a.GROUP_ID = $groupid
AND (a.ROLE = 'A' OR a.ROLE = 'E')
Надеюсь, поможет..
Вы должны использовать IN пункт вместо OR.
Попробуй это:
SELECT a.USER_ID AS userid, a.GROUP_ID, a.ROLE, b.ID, b.NAME, b.LAST_NAME
FROM b_sonet_user2group a
INNER JOIN b_user b ON a.USER_ID = b.ID
WHERE a.GROUP_ID = $groupid AND a.ROLE IN ('A', 'E');