Sql совокупный счетчик = 0 - PullRequest
       29

Sql совокупный счетчик = 0

0 голосов
/ 22 ноября 2010

У меня есть следующие модели в приложении Rails 3, и я выбираю требование:

class Item < AR<br> has_many :holdings

class Holding < AR<br> belongs_to :item

Модель Holding имеет «активный»логическое значение.

Я хочу найти каждый предмет, который имеет 0 «активных» авуаров (может иметь любое количество связанных авуаров), я пробовал довольно много комбинаций.

SELECT * from items JOIN<br> (SELECT holdings.item_id, count(ifnull(item_id,0)) AS hcount FROM holdings<br> WHERE holdings.active = "t"<br> GROUP BY holdings.item_id<br> HAVING hcount = 0)<br> ON items.id = holdings.item_id

но при этом будут возвращены только числа, которые больше 0.

Может ли кто-нибудь указать мне правильное направление?

1 Ответ

1 голос
/ 22 ноября 2010

Не используйте количество, когда вы имеете в виду!

Использовать предложение "не существует".

SELECT * from items i
where not exists(select holdings.item_id 
             from holdings 
             where holdings.active = 't' 
               and holdings.item_id = i.item_id)

В этом выражении на английском языке говорится, что все строки из элементов, в которых нет совпадающих строк в авуарах.

...