我需要加入递归,像这样:
SELECT a.*, b.* c.* FROM a
LEFT JOIN b on b.id = a.b_id
LEFT JOIN c ON c.id = b.c_id
我的模型定义是:
type A struct {
ID int,
NameA string,
B_id int
B *B,
C *C,
}
type B struct {
ID int,
C_id int,
NameB string,
C C,
}
type C struct {
ID int,
NameC string,
}
我尝试使用关系,但是没有用:
a := A{}
//does not work
db.Model(&a).Relation("B").Relation("C").First()
//works
db.Model(&a).Relation("B").First()
我如何在go-pg上实现递归联接,如果有人有经验请告诉我。非常感谢。
答案 0 :(得分:0)
您需要指出它实际上是第二个结构上的关系:
db.Model(&a).Relation("B").Relation("B.C").First()