查询将不符合 WHERE 语句条件的用户拉回



我正在从数据库中检索要显示在下拉列表中的用户。我需要所有与正确的组id匹配并且同时处于两个特定角色之一的用户。以下是我迄今为止的声明:

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部分有什么问题吗?当一个用户只出现在符合该标准的用户列表中一次时,我也会重复一个用户。如果我错过了一些简单的东西,请告诉我。

感谢

你能试试这个吗:

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')

希望能有所帮助。。

您必须在OR上使用IN子句

试试这个:

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');

相关内容

  • 没有找到相关文章

最新更新