0

对于下表,我想为特定帐户选择所有用户及其组。

USERS 
-id
-name
-groupid
-accountid


GROUPS 
-id
-name
-accountid

我正在执行以下操作:

SELECT 
USERS.ID,
USERS.NAME,
GROUPS.ID,
GROUPS.NAME,    
FROM GROUPS JOIN USERS ON USERS.ACCOUNTID= GROUPS.ACCOUNTID
WHERE GROUPS.ACCOUNTID=1

由于某种原因,结果重复了 3 次(这是组数)。每个用户使用不同的 GROUPID 显示 3 次。

更新如果我改为加入 GROUPID,就像建议的那样。我得到以下。如您所见,即使一个组中有多个用户,每个组也只显示一个用户。

USER_ID  GROUP_ID     GROUP_NAME        NAME
42            6        Teacher      John E. 
59            8        Student      Bill W. 
4

1 回答 1

1

由于您加入的是 ACCOUNTID 而不是 GROUPID,因此每个用户会显示 3 次不同的 GROUPID。

您可以尝试以下方法,即加入 GROUPID。

SELECT 
USERS.ID,
USERS.NAME,
GROUPS.ID,
GROUPS.NAME    
FROM USERS JOIN GROUPS ON USERS.GROUPID= GROUPS.ID
WHERE GROUPS.ACCOUNTID=1

更新: http ://sqlfiddle.com/#!2/3afee/ 1

于 2012-07-03T02:30:17.890 回答