微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby-on-rails – Rails,scope,OR和join

我有一个范围:

includes(:countries).where("profiles.sector = :sector OR advices.sector = :sector",:sector => sector)

它产生以下sql

SELECT `profiles`.* FROM `profiles` INNER JOIN `advices` ON `advices`.`profile_id` = `profiles`.`id` WHERE (profiles.sector = 'Forestry_paper' OR advices.sector = 'Forestry_paper')

(是的,我的个人资料和我的国家模型中有国家/地区)

不幸的是,OR似乎失败了:

它不会使配置文件只有适当的扇区,但没有相关的建议.思考?

解决方法

正在进行INNER JOIN,因此需要配置文件具有相应的建议.请尝试以下方法

Profile
  .joins("LEFT JOIN advices ON advices.profile_id = profiles.id")
  .where("profiles.sector = :sector OR advices.sector = :sector",:sector => sector)

这还包括没有建议的配置文件.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐