我有一个对象表,一个对象组表,还有一个链接这两者的表。因此,给定一些子对象组(这些子对象将在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。不过,我一直在想有更好的方法来做这件事,但我似乎找不到它。
1条答案
按热度按时间gojuced71#
我提供的多个连接似乎就是实现这种功能的方法。