私はGORM ORMで Go を使用しています。私は次の構造体を持っています。関係は単純です。1 つのタウンには複数のプレイスがあり、1 つのプレイスは 1 つのタウンに属します。
type Place struct {
ID int
Name string
Town Town
}
type Town struct {
ID int
Name string
}
今、私はすべての場所を照会し、それらのすべてのフィールドと対応する町の情報を取得したいと考えています。これは私のコードです:
db, _ := gorm.Open("sqlite3", "./data.db")
defer db.Close()
places := []Place{}
db.Find(&places)
fmt.Println(places)
サンプル データベースには次のデータがあります。
/* places table */
id name town_id
1 Place1 1
2 Place2 1
/* towns Table */
id name
1 Town1
2 Town2
私はこれを受け取っています:
[{1 Place1 {0 }} {2 Mares Place2 {0 }}]
しかし、私はこのようなものを受け取ることを期待しています(両方の場所は同じ町に属しています):
[{1 Place1 {1 Town1}} {2 Mares Place2 {1 Town1}}]
どうすればそのようなクエリを実行できますか? Preloads
andを使用してみRelated
ましたが成功しませんでした (おそらく間違った方法です)。期待した結果を得ることができません。