gpt4 book ai didi

ruby-on-rails - 通过查询空的has_many

转载 作者:行者123 更新时间:2023-12-02 17:24:18 25 4
gpt4 key购买 nike

如何查询 has_many :through 以查看哪些记录在另一侧具有空关联? (我正在使用 Rails 5)

class Specialty
has_many :doctor_specialties
has_many :doctor_profiles, through: :doctor_specialties

class DoctorProfile
has_many :doctor_specialties
has_many :specialties, through: :doctor_specialties

class DoctorSpecialty
belongs_to :doctor_profile
belongs_to :specialty

我可以通过枚举 Specialty 来做到这一点,但我想在 SQL 查询中做到这一点。

Specialty.includes(:doctor_profiles).all.select{|x| x.doctor_profiles.length == 0 }

最佳答案

Specialty.includes(:doctor_profiles).where(doctor_profiles: { id: nil })

参见 Active Record Query Interface有关 AR 查询的更多信息。

因为你使用的是 Rails >= 5,你可以使用 left_outer_joins (谢谢 @gmcnaughton):

Specialty.left_outer_joins(:doctor_profiles).where(doctor_profiles: { id: nil })

关于ruby-on-rails - 通过查询空的has_many,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39980270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com