2013-12-16 17 views
1

我從數據庫檢索用戶以顯示在下拉列表中。我需要所有匹配正確組ID並且也是兩個特定角色之一的用戶。這裏是我迄今爲止的聲明:查詢拉回不符合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部分有問題嗎?當他們只出現在符合條件的用戶列表中時,我也會重複一次。如果我錯過了一些簡單的東西,請告訴我。

感謝

回答

1

你可以試試這個:

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

希望它可以幫助..

+0

這工作完美!我知道這是圍繞這個聲明的這個領域。感謝您的幫助。 – andy

+0

@ Andy.Welcome :),你可以把它標記爲答案,以便它對別人有用。 –

+0

當它讓我的時候會做,只需要等5分鐘;)再次感謝。 – andy

1

你必須使用IN Clause而不是在

試試這個:

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

@andy按照我必須使用IN子句的替代或如果你關心性能。 –