编辑:
我试着把其他所有的疾病都从患有A疾病的人身上找出来。
老问题(错):
我试图让患有某些疾病的用户也患上其他疾病:
class User
has_many :treatments
end
class Disease
has_many :treatments
end
class Treatment
belongs_to :user
belongs_to :disease
end我有一些工作代码:
获取因特定疾病而遭受痛苦的所有用户ids:
user_ids = Treatment.joins(:user).where(disease_id: 250).pluck(:user_id)根据用户ids获取所有疾病
Disease.where("id != 250").where(id: Treatment.select("DISTINCT disease_id").where(user_id: user_ids))有更简单的方法吗?也许有一个问题?
发布于 2013-11-04 08:14:56
编辑:如果您想使用一个查询,可以使用这个查询:
select distinct d1.id from diseases as d1
JOIN treatments as t1 on d1.id=t1.disease_id
where exists (
select t2.id from treatments as t2
where t2.disease_id = 250 AND t2.user_id=t1.user_id
) AND d1.id <> 250;https://stackoverflow.com/questions/19763458
复制相似问题