我认为您的查询可以更简单的方式编写
select v.venue_id, v.venue_name from venue v left join concert ct on v.venue_id = ct.venue_id left join event e on e.concert_id = ct.concert_id group by v.venue_id, v.venue_name having count(distinct e.event_id) < 2
这将来自 venues 至 concerts 从 concerts 至 events 计算每个场地的活动数量,并仅返回少于两个场地的活动。没有分配的场地将通过使用保留 left join 。
venues
concerts
events
left join