psql获取给定部分子级组的其他子级

dzjeubhm  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(382)

我有一个对象表,一个对象组表,还有一个链接这两者的表。因此,给定一些子对象组(这些子对象将在pam上的查看框中按对象位置搜索,但我在这里进行了简化),我需要获得对象所在组中所有可能的对象。这很肤浅,不需要更深入的比较。

objects_table
id | name
=========
1  | foo
2  | bar
3  | baz
4  | qux
groups_table
id | name
=========
1  | group_1
2  | group_2
3  | group_3
objects_groups_table
group_id | object_id
==============
1        | 1
1        | 2
2        | 2
2        | 4
3        | 1
3        | 3

到目前为止,我一直在这么做:

select o2.id
from objects o
join objects_groups_table ogt on o.id = ogt.object_id
join objects_groups_table ogt2 on ogt2.group_id= ogt.group_id
join objects o2 on ogt2.object_id = o.id
where o.name in ('bar', 'qux')

它成功地给了我1,2,和4。不过,我一直在想有更好的方法来做这件事,但我似乎找不到它。

gojuced7

gojuced71#

我提供的多个连接似乎就是实现这种功能的方法。

相关问题