最終的には、それぞれ「曲」が 1 つしかない「アルバム」レコードを含む「インポート」レコードのリストが必要です。
これは私が今使っているものです:
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)
);
ネストされた select (join を使用) は非常に高速ですが、外部の "in" 句は非常に遅いです。
クエリ全体を単一の (ネストなしの) 結合にしようとしましたが、group/having 句で問題が発生しました。私ができる最善のことは、重複を含む「インポート」レコードのリストでしたが、これは受け入れられません。
このクエリを構成するよりエレガントな方法はありますか?