考虑下表:
人:
id: integer
name: string
friend :
id1: integer
id2: integer
我想找到所有的 friend 对,所以我使用这样的东西:
People.joins("JOIN friends ON friend.id1 = people.id JOIN friends ON friend.id2 = people.id")
生成此 SQL:
SELECT "people".* FROM "people"
JOIN friends ON friends.id1 = people.id
JOIN people ON friends.id2 = people.id
并出现以下错误:
(pry) output error: #<ActiveRecord::StatementInvalid:
PG::DuplicateAlias: ERROR: table name "people" specified more than once
多次指定 people
有什么问题?
最佳答案
给他们不同的别名:
SELECT p1.* FROM people p1
JOIN friends ON friends.id1 = p1.id
JOIN people p2 ON friends.id2 = p2.id
关于ruby-on-rails - 如何(通过关系表)加入针对自身的表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42865637/