【问题标题】:Golang gorm associations (belongs to)Golang gorm 协会(所属)
【发布时间】:2020-08-20 03:01:37
【问题描述】:

我有用户和个人资料(一对一属于用户)

type User struct {
   ID          int
   Username    string
   Password    string
}

type Profile struct {
   Fullname    string
   Address     string
   UserID      int
   User        User
}

如果我知道用户,我可以通过db.Model(&user).Related(&profile) 找到相关的个人资料。如果我想查询多个用户,并且我还需要相关的配置文件怎么办?如果我使用相同的方法,我会遇到 n+1 问题。任何线索将不胜感激。

【问题讨论】:

    标签: go go-gorm


    【解决方案1】:

    您可以使用 Raw() 方法编写一个普通查询:

    type VwStruct struct{
       ID       string
       Username string
       Password string
       Address  string
       Fullname string
    }
    
    var YourStruct *VwStruct
    db.Raw('SELECT u.*, p.Fullname AS user_full_name, p.Address AS user_address FROM user u INNER JOIN profile p ON u.ID = p.UserId').scan(&YourStruct)
    

    祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-08
      • 2017-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多