gpt4 book ai didi

ruby-on-rails - 如何在同一张 table 上多次联接?

转载 作者:行者123 更新时间:2023-12-04 06:15:18 24 4
gpt4 key购买 nike

我正在查询给定两个用户的共同 friend 。下面的查询在大多数情况下应该可以解决问题,而友谊表应该是不言而喻的,其中包含user_idfriend_id

SELECT `users`.* FROM `users`
INNER JOIN `friendships` `a` ON `users`.`id` = `a`.`friend_id`
INNER JOIN `friendships` `b` ON `users`.`id` = `b`.`friend_id`
WHERE `a`.`user_id` = 1 AND `b`.`user_id` = 2

让我感到困惑的是如何编写此语义 ActiveRecord。使用ActiveRecord,您可以加入一个关联,但只能加入一次。那么,如何在 ActiveRecord中尽可能简单地编写此代码呢?

最佳答案

我使用joins的字符串参数来做到这一点:

User.
joins("INNER JOIN friendships a ON users.id = a.friend_id").
joins("INNER JOIN friendships b ON users.id = b.friend_id").
where("a.user_id" => 1, "b.user_id" => 2)

我不知道使用Active Record进行这种连接的更高级方法。

关于ruby-on-rails - 如何在同一张 table 上多次联接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39651003/

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