对于下表,我想为特定帐户选择所有用户及其组。
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.
答案 0 :(得分: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