Rails读取没有关系的记录,并且有条件的记录

阿拉文

我有HomeMakerPerDateUnavailability模型。HomeMakerhas_many per_date_unavailabilities我希望所有未在per_date_unavailability中有记录的房屋制造商和有记录但在per_date_unavailabilties.unavailable_date= somedate时没有记录的房屋制造商

当我想要没有PerDateUnavailability记录的HomeMaker使用时,通常会做第一部分 HomeMaker.includes(:per_date_unavailabilities).where(per_date_unavailabilities: {id: nil})

条件的第二部分使用 HomeMaker.joins(:per_date_unavailabilities).where.not(per_date_unavailabilities: {unavailable_date: Date.today})

我该如何混合?

阿卜舍克

您需要的sql有点像这样:

select a.*
  from home_makers a left join per_date_unavailabilities b
  on a.id = b.home_maker_id
  where b.home_maker_id is NULL
  or b.unavailable_date IS NOT ?;

or在ActiveRecord中,表达该条款有些困难,最好不要与之抗衡。(在OP评论后编辑)

HomeMaker.joins("LEFT JOIN per_date_unavailabilities on per_date_unavailabilities.home_maker_id = home_makers.id")
.where("per_date_unavailabilities.home_maker_id IS NULL OR per_date_unavailabilities.unavailable_date != ?", somedate)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL语句有条件地选择相关记录

来自分类Dev

BCNF分解没有关系的关键

来自分类Dev

Rails-有条件地记录特定的主机名

来自分类Dev

没有关系实体的JPA存储库选择

来自分类Dev

MS SQL:有条件的情况,用于分组记录

来自分类Dev

SQL联接2个没有关系的表

来自分类Dev

Yii deleteAll()带有条件的记录

来自分类Dev

MySQL选择行有和没有关系

来自分类Dev

大熊猫根据组的记录数有条件地删除记录

来自分类Dev

TSQL-有条件的“交叉联接”记录

来自分类Dev

有条件的记录分组

来自分类Dev

如何查询不同的集合(没有关系)?

来自分类Dev

获取与特定ID没有关系的记录

来自分类Dev

删除有条件的记录

来自分类Dev

OpenERP(Python)-有条件地搜索记录ID?

来自分类Dev

如何从一个表中获取所有记录,并且仅从具有条件的联接表中获取记录

来自分类Dev

SQL删除有条件的特定记录

来自分类Dev

插入没有关系的两个表

来自分类Dev

根据字段有条件地选择整个记录

来自分类Dev

删除有条件的重复记录

来自分类Dev

如何有条件地从SQL Server选择记录

来自分类Dev

如果行数= 1且有条件,则有条件

来自分类Dev

查找所有没有关系的实体

来自分类Dev

Laravel:有条件地获取记录

来自分类Dev

Rails查询记录必须满足所有条件

来自分类Dev

有条件的导入-如何丢弃记录?

来自分类Dev

返回一个有关系的 json 对象还是没有关系更好?

来自分类Dev

JPA - 没有关系的持久实体

来自分类Dev

从有条件的映射表中选择不同的记录