gpt4 book ai didi

sql - 如何在Rails中联接三个表?

转载 作者:行者123 更新时间:2023-12-04 15:21:57 26 4
gpt4 key购买 nike

我的记录设置如下

Subscription: id, plan_id                 <- belongs to plan
Plan: id, role_id <- belongs to role
Role: id, name

给定此数据
Subscription: id: 1, plan_id: 5
Plan: id: 5, role_id: 10
Role: id: 10, name: 'Gold'

我正在尝试编写一个联接,以便我可以根据其关联角色找到订阅,即:

Subscription.joins(:plan).joins(:role).where("roles.name = ?", 'Gold')



但是这种方法行不通。任何帮助,将不胜感激。

谢谢。

最佳答案

如果您有适当的关联,则使用此:

Subscription.includes(:plan => [:role]).where("roles.name = 'Gold'").first

您也可以手动编写查询:
Subscription.joins("INNER JOIN plans ON plans.id = subscriptions.plan_id
INNER JOIN roles ON roles.id = plans.role_id").where("roles.name = 'Gold'").first

关于sql - 如何在Rails中联接三个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27651052/

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