【发布时间】:2016-08-12 01:54:17
【问题描述】:
我正在编写一个用户组系统。这是我的数据库结构:
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 表中都有一个条目。 现在我想从权限表开始,想加入 user_group_properties 表。给出了用户 ID 和组 ID。 如果用户在user_group_properties-table中有自己的行(至少有一个条目“where user_id = {user_id}”,那么我要获取这一行,否则我要获取组的行。
在示例数据中,您可以看到 ID 为 1 的权限。在 user_group_properties 表中有两个权限 ID 为 1 的条目。在第一个条目中,user_id 为 null 而 group_id 不是,在第二个条目中,group_id 为 null 并且user_id 不是。 如果我现在正在执行 Join-Query,MySQL-Server 会给我第一行,即用户 ID 为空的行,但如果存在这样的行,我需要用户 ID 不为空的行。如果现在存在用户 ID 为空的行,我需要该组的行。
我希望你能帮助我。
非常感谢!
【问题讨论】:
-
您能否编辑您的问题并提供示例数据和所需的结果?
标签: php mysql sql database join