github.com/gogf/gf@v1.16.9/.example/database/gdb/mysql/gdb_with_slect.go (about)

     1  package main
     2  
     3  import (
     4  	"github.com/gogf/gf/frame/g"
     5  	"github.com/gogf/gf/util/gmeta"
     6  )
     7  
     8  func main() {
     9  	type UserDetail struct {
    10  		gmeta.Meta `orm:"table:user_detail"`
    11  		Uid        int    `json:"uid"`
    12  		Address    string `json:"address"`
    13  	}
    14  
    15  	type UserScore struct {
    16  		gmeta.Meta `orm:"table:user_score"`
    17  		Id         int `json:"id"`
    18  		Uid        int `json:"uid"`
    19  		Score      int `json:"score"`
    20  	}
    21  
    22  	type User struct {
    23  		gmeta.Meta `orm:"table:user"`
    24  		Id         int          `json:"id"`
    25  		Name       string       `json:"name"`
    26  		UserDetail *UserDetail  `orm:"with:uid=id"`
    27  		UserScores []*UserScore `orm:"with:uid=id"`
    28  	}
    29  
    30  	db := g.DB()
    31  	var user *User
    32  	err := db.Model(user).WithAll().Where("id", 3).Scan(&user)
    33  	if err != nil {
    34  		panic(err)
    35  	}
    36  	g.Dump(user)
    37  }