gpt4 book ai didi

mysql - 如何在第三个表上匹配两种记录

转载 作者:行者123 更新时间:2023-11-29 06:41:37 24 4
gpt4 key购买 nike

我有 5 张 table :

**areas**
id
otherfields

**realtors**
id
otherfields

**users**
id
otherfields

**areas_realtors**
area_id
realtor_id

**areas_users**
area_id
user_id

我在模型中的关系是:

class Area < ActiveRecord::Base
has_and_belongs_to_many :users
has_and_belongs_to_many :realtors
end

class AreasRealtor < ActiveRecord::Base
belongs_to :realtor
belongs_to :area
end

class AreasUser < ActiveRecord::Base
belongs_to :user
belongs_to :area
end

class Realtor < ActiveRecord::Base
has_and_belongs_to_many :areas
end

class User < ActiveRecord::Base
has_and_belongs_to_many :areas
end

在我的“房地产经纪人 Controller ”中,我需要选择与房地产经纪人有公共(public)区域的所有用户。

我没有找到使用 Active Record 或“简单 MySQL 查询”的解决方案...

感谢提前,

F.

最佳答案

这应该为您完成,...因为“只是”ruby 解决方案但有效。

@realtor.areas.collect(&:users).inject(&:+).uniq

collect 方法返回一个数组,其中包含被调用方法 users 的返回值,该方法始终返回一个包含关联用户的数组。 inject 方法对所有收集到的数组调用 + 方法,将它们添加到一个数组中。 uniq 方法从数组中删除双用户对象。因此它返回一个数组,其中包含与 @relator 关联的区域相关的所有用户对象。

关于mysql - 如何在第三个表上匹配两种记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21118255/

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