【发布时间】:2010-10-09 09:56:40
【问题描述】:
我最终需要包含“专辑”的“导入”记录列表 每张唱片只有一首“歌曲”。
这是我现在使用的:
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)
);
嵌套选择(带有连接)非常快,但外部 "in" 子句非常慢。
我尝试将整个查询设为单个(无嵌套)连接,但运行了 成组/有子句的问题。我能做的最好的就是 带有欺骗性的“导入”记录列表,这是不可接受的。
有没有更优雅的方式来编写这个查询?
【问题讨论】:
-
您会指定 RDBMS 吗?