我试图找到总计数的水果,它属于一个超市,没有相关的项目记录。
我的关系是:超市has_many水果超市和超市has_many项目。项通过其external_upc代码链接到水果。如何在水果表中找到没有相应条目的特定超市的记录量?
我不知道从哪里开始这个查询,我想我需要一个左联接或子句。但我们会很感激你的帮助。
发布于 2014-08-29 16:17:05
如果没有更多的信息,我将猜测几件事,但一个可能的解决方案是:
supermarket.fruits.where(external_upc: nil).count
'supermarket'
是代表你想要搜索的超市的对象,所以'supermarket.fruits'
会给你那个市场上所有的水果。
然后,我假设,如果一个水果没有链接的项目,它将有他们的external_upc代码为零,所以'where(external_upc: nil)'
会给你水果(在你的超市),没有一个项目链接。
最后我们用'.count'
.伯爵。
发布于 2014-09-01 20:34:41
通过使用for查询,我能够找到我正在寻找的内容。
Select COUNT(item_id)
FROM (
SELECT item_id
FROM fruits
WHERE fruits.active = 't' AND fruits.supermarket_id = 2
EXCEPT
SELECT externa;_upc
FROM items) f;
https://stackoverflow.com/questions/25571655
复制相似问题