Запросы пользователей, не отвечающие критериям заявления 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');
Другие вопросы по тегам