对不起,我不知道如何在不给你全部故事的情况下提出这个问题:
请考虑以下表格:
**users**
ID | name
1 | Shawn
2 | John
3 | Josh
**groups**
groupName | userID
groupA | 1
groupA | 2
groupB | 1
Run Code Online (Sandbox Code Playgroud)
这意味着Shawn和John是A组的一部分,而Shawn是B组的一部分.Josh根本不属于任何组.
我想要做的是列出每个用户,看看他属于哪个组.这是我会尝试的:
SELECT name, groupName FROM users, groups WHERE userID = ID GROUP BY name
Run Code Online (Sandbox Code Playgroud)
哪个输出
name | groupName
Shawn | groupA
John | groupA
Run Code Online (Sandbox Code Playgroud)
我看不出Shawn也是B组的一部分.我根本也看不到Josh.
我怎么能得到这样的东西呢?
name | groupName
Shawn | groupA, groupB
John | groupA
Josh | none
Run Code Online (Sandbox Code Playgroud)
或者至少是这样的:
Shawn | groupA
Shawn | groupB
John | groupA
Josh |
Run Code Online (Sandbox Code Playgroud)
我在思考这些问题:
SELECT name, groupName FROM users, groups WHERE (userID = ID GROUP BY name OR 1)
Run Code Online (Sandbox Code Playgroud)
但我找不到解决方案
提前谢谢大家
Căt*_*tiș 10
select name, groupName from
users left outer join groups on UserID = ID
order by name
Run Code Online (Sandbox Code Playgroud)
当用户不属于任何组时,它将显示组名的空值.