我正在从数据库中检索要显示在下拉列表中的用户。我需要所有与正确的组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');