如果没有找到结果,如何让SQL忽略WHERE子句的一部分?

Sha*_*awn 0 mysql

对不起,我不知道如何在不给你全部故事的情况下提出这个问题:

请考虑以下表格:

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

当用户不属于任何组时,它将显示组名的空值.