在我的数据库中,我创建了三个表,分别是 user、user_group、user_group_info。
我想做这样的查询,但我不知道如何加入这两个表。
SELECT * FROM user AS u
INNER JOIN user_group AS ug ON u.user_group_id=ug.user_group_id
INNER JOIN user_group_info AS ugi ON ug.user_group_id=ugi.user_group_id
WHERE ugi.language_id = 1
用户模型
class User < ApplicationRecord
self.table_name = "user"
self.primary_key = "user_id"
belongs_to :user_group
end
class UserGroup < ApplicationRecord
self.table_name = "user_group"
self.primary_key = "user_group_id"
has_many :user
belongs_to :user_group_info
end
class UserGroupInfo < ApplicationRecord
self.table_name = "user_group_info"
has_many :user_group
end
您可以使用 ActiveRecord 创建您的查询,而不是手动创建它。试试这个:
User.joins(user_group: :user_group_info).where(user_group_infos: { language_id: 1 })
这应该转化为您在问题中作为示例查询给出的内容。
您开始User
并加入user_groups
。通过user_groups
,你加入user_group_infos
。最后,您在user_group_infos
. 有几种写法。
where("user_group_infos.language_id = ?", language_id)
# or
where(user_group_infos: { language_id: language_id })
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句