【发布时间】:2020-09-08 19:12:55
【问题描述】:
我有以下数据集
ID | GROUP | ORGANIZATION | USERNAME
----------------------------------------------------
1 G1 ORG1 SKYLER
2 G1 ORG1 BRAD
3 G1 ORG1 CHAD
4 G2 ORG1 SKYLER
5 G3 ORG1 THAMIUS
6 (null) ORG1 KYLE
7 G7 ORG2 TAYLOR
8 G7 ORG2 CLAY
9 G7 ORG2 WILL
10 G8 ORG2 KYLE
然后我有一个选择组织和用户名的查询:
select group from table where organization = 'ORG1' and username = 'SKYLER'
它会返回这个:
GROUP
-------
G1
G2
这是我想要为这个查询返回的,但是我有第二种情况。如果我去:
select group from table where organization = 'ORG1' and username = 'KYLE'
它返回 null,但我想要返回 'ORG1' 的所有组:
GROUP
--------
G1
G2
G3
因此,基本上,如果我在组织内部选择了一个用户并且他们分配了一个组,我想返回这些组。如果他们没有分配给他们的组,这意味着它们是组织的一种“超级用户”,如果选择凯尔,它应该返回G1,G2和G3。我尝试过使用 IFNULL 函数,但它不允许在其中使用 select 语句。我怎样才能做到这一点?
【问题讨论】:
标签: mysql sql subquery where-clause window-functions