带过滤器的MySQL连接表

简·W

我正在编写一个用户组系统。这是我的数据库结构:

users(id username group_id)
-------- -------- --------
1        gesting  1

groups(id title)
--------- -----
1         Admin

permissions(id value)
-------------- --------------
1              testpermission

user_group_properties
group_id user_id permission_id data
-------- ------- ------------- -------------------------
1        NULL    1             some further information
NULL     1       1             some further information

每个用户都在一个组中,每个组在user_group_properties-table中都有一个条目。现在,我想从权限表开始,并想加入user_group_properties表。给出了用户ID和组ID。如果用户在user_group_properties表中有自己的行(至少一个条目“ where user_id = {user_id}”),那么我要获得此行,否则我要获得组的行。

在示例数据中,您可以看到一个ID为1的权限。在user_group_properties-table中,有两个条目的权限为id_id1。在第一个条目中,user_id为null,而group_id为非,在第二个条目中,group_id为null,而user_id为not。 。如果我现在正在执行Join-Query,MySQL-Server将给我第一行,即user-id为null的行,但是如果存在这样的行,我需要user-id不为null的行。如果现在存在user-id为null的行,则需要该组的行。

我希望你能帮助我。

非常感谢!

戈登·利诺夫(Gordon Linoff)

如果我理解正确,则您希望优先访问user_group_properties如果用户存在,则首先,然后是任何组。这是一种方法:

select ugp.*
from user_group_properties ugp
where ugp.user_id = {user_id}
union all
select ugp.*
from user_group_properties ugp join
     users u
     on ugp.group_id = u.group_id and u.id = {user_id}
where not exists (select 1 from user_group_properties ugp2 where ugp2.user_id = {user_id}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

左连接带过滤器

来自分类Dev

带过滤器的dplyr自连接

来自分类Dev

带过滤器的AngularJS表

来自分类Dev

如何将不带过滤器的子查询连接到带过滤器的查询?

来自分类Dev

带过滤器的XSLT分组

来自分类Dev

ElasticSearch带过滤器的嵌套查询

来自分类Dev

带过滤器的Elasticsearch建议

来自分类Dev

带过滤器的Elasticsearch Bool查询

来自分类Dev

带过滤器的DyanmoDB扫描

来自分类Dev

ElasticSearch带过滤器的嵌套排序

来自分类Dev

带过滤器的AngularJS JSON

来自分类Dev

带过滤器的ObservableCollection枚举器

来自分类Dev

带过滤器的火花读取

来自分类Dev

SQL选择带过滤器的行

来自分类Dev

带过滤器的grep grep,如何?

来自分类Dev

R dplyr rowMeans 带过滤器

来自分类Dev

带过滤器的pyspark窗函数

来自分类Dev

MySQL 列出实体并在连接表上应用 AND 过滤器

来自分类Dev

带过滤器的AngularJS ng-repeat-NotArray错误

来自分类Dev

带过滤器的SQLAlchemy func.count

来自分类Dev

带过滤器VBA的开放式访问表格

来自分类Dev

带过滤器的ui-bootstrap分页

来自分类Dev

带过滤器的日期直方图凝集问题

来自分类Dev

带过滤器的现代迭代C ++集合

来自分类Dev

D3_带过滤器的重绘图表

来自分类Dev

Power BI-带过滤器的Rankx

来自分类Dev

带过滤器的boost :: filesystem :: recursive_directory_iterator

来自分类Dev

带过滤器的MongoDb FindAsync游标始终返回null

来自分类Dev

带过滤器的Neo4j路径