簡単に言えば、 Sequelを使用してこのクエリを実行するにはどうすればよいですか?
select a.id, count(t.id)
from albums a
right join tracks t on t.album_id = a.id
group by a.id
簡単に言えば、 Sequelを使用してこのクエリを実行するにはどうすればよいですか?
select a.id, count(t.id)
from albums a
right join tracks t on t.album_id = a.id
group by a.id
DB[:albums___a].
right_join(:tracks___t, :album_id=>:id).
select_group(:a__id).
select_more{count(:t__id)}
問題は、左結合が各アルバム ID のトラック ID を見つけることです。ソリューション:
right join
合計のサブクエリ。sequel が次のことをサポートしていると仮定します。left join (select album_id, count(album_id) as count from tracks group by album_id) t on
from albums a, tracks t where t.album_id=a.id
結合の代わりにストレートアップ。