导轨:内部有"OR is NULL"的条件



我想获得datetime属性为NULL或在时间范围内的所有记录。如何在where内的条件中添加or where disbursed_at IS NULL?我的实际查询要长得多,我不想使用.or

重复它。
Investor.left_join(:disbursements).where(disbursements: { disbursed_at: year_period })

一般来说,您可以通过提供至少包含一个nil元素的Array作为Hash参数的一部分来添加OR column_X IS NULL条件。

例如:

Investor
.left_join(:disbursements)
.where(disbursements: { disbursed_at: [year_period,nil] })

假设year_periodRange,结果应该是

SELECT 
investors.* 
FROM 
investors 
LEFT OUTER JOIN disbursements ON disbursements.investor_id = investors.id
WHERE 
disbursements.disbursed_at BETWEEN xxxxx AND xxxxx 
OR disbursements.disbursed_at IS NULL 

相关内容

  • 没有找到相关文章

最新更新