Rails 3 アプリに次のモデルがあり、要件を選択します。
class Item < AR
has_many :holdings
class Holding < AR
belongs_to :item
Holding モデルには「アクティブな」ブール値があります。
「アクティブな」所蔵が 0 の各アイテムを見つけたい (関連付けられている所蔵はいくつでもある可能性があります)。かなりの数の組み合わせを試しました。
SELECT * from items JOIN
(SELECT holdings.item_id, count(ifnull(item_id,0)) AS hcount FROM holdings
WHERE holdings.active = "t"
GROUP BY holdings.item_id
HAVING hcount = 0)
ON items.id = holdings.item_id
ただし、これは 0 より大きいカウントのみを返します。
誰かが私を正しい方向に向けることができますか?