我的应用程序是使用ruby on rails构建的,由mysql DB支持 它具有2个表(模型)-产品(id,名称,created_at,updated_at等)和product_details(id,product_type,product_id,expires_on,created_at,updated_at等)(按产品连接) ID列)。
我只需要从满足以下条件之一的产品模型/表中选择那些活动记录或product_id,即可满足以下条件之一-该特定产品的产品详细信息已过期/过期(product_details表中存在expires_on列)或在product_details表中根本没有该产品的条目(在我的用例中有效的场景)
请注意,product_id是引用产品(id)的外键
任何帮助将不胜感激。提前致谢! :)
答案 0 :(得分:1)
假设:
class Product < ApplicationRecord
has_one :product_detail
end
和
class ProductDetail < ApplicationRecord
belongs_to :product
end
您可以使用简单的单行查询来获取过期的产品或没有详细信息的产品:
Product.select { |p| p.product_detail.nil? || p.product_detail.expires_on <= Date.today }