monkey-hangouts将许多猴子与许多树木相关联,反之亦然。一只猴子在多棵树上闲逛。一棵树上有多只猴子。关系猴子挂钩模拟了许多猴子与树木的对比。
大部分猴子只在一棵树上闲逛。我喜欢在多棵树上闲逛的猴子的查询。也就是说,猴子在猴子聚会中有多个相关记录。作为奖励,我希望查询结果是实际环聊的猴子X树连接。
这是一个选择所有猴子及其视频群聊的查询。将此限制为具有多个环聊的猴子。
select
m.*, t.*
from
monkeys m
inner join
monkey-hangouts h on m.id = h.monkey_id
inner join
trees t on t.id = h.tree_id
order by
m.id;
答案 0 :(得分:2)
您可以通过聚合猴子并计算树木数量来实现这一目标:
select m.*
from monkeys m join
monkey_hangouts mh
on m.id = mh.monkey_id
group by m.id
having count(distinct mh.tree_id) > 1;
修改:distinct mh.tree_id
答案 1 :(得分:2)
此查询选择具有多个猴子视频群聊的所有猴子及其树。
select m.*, t.*
from monkeys m
inner join monkey_hangouts h on m.id = h.monkey_id
inner join trees t on t.id = h.tree_id
where m.id in (select monkey_id
from monkey_hangouts
group by monkey_id
having count(*) > 1)
order by m.id