How to join on the same table multiple times?

前端 未结 2 439
[愿得一人]
[愿得一人] 2020-12-11 03:37

I\'m querying for the mutual friends of a given two users. The query below should do the trick for the most part and the friendship table should be self-evident, containing

2条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-12-11 03:54

    I do it with string arguments to 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)
    

    I'm not aware of a higher-level way to do such a join with Active Record.

提交回复
热议问题