我最终需要一个包含“专辑” 记录的“导入”记录列表,每个记录只有一首“歌曲”。使用嵌套group by/having子句进行复杂连接?
这是我现在使用什么:
select i.id, i.created_at
from imports i
where i.id in (
select a.import_id
from albums a inner join songs s on a.id = s.album_id
group by a.id having 1 = count(s.id)
);
嵌套选择(与连接)的速度极快,但外部 “在”条款是速度奇慢。
我试图让整个查询成为单个(无嵌套)连接,但运行 时出现了group/having子句的问题。我能做的最好的事情是 带有模糊的“导入”记录列表,这是不可接受的。
是否有更优雅的方式来组成这个查询?
你会指定RDBMS吗? – Sung 2009-02-23 21:14:31