gorm 关联查询问题

18328048335 · · 869 次点击 · 开始浏览    置顶

我最近在学习gorm,正接触到关联模式。其中,我对belongs to的示例定义如下: ```go // Employee // @Description 雇员 type Employee struct { ID uint `gorm:"primary_key;autoIncrement:true"` Name string //[belongs to][一对一]声明写法如下 CID int //Company ID C Company `gorm:"foreignKey:CID"` // Company // @Description: 公司 type Company struct { ID uint `gorm:"primary_key;autoIncrement:true"` Name string `gorm:"unique"` } ``` 在继续学习到查询时,我了解到了在Employees表中查Company信息需要使用: ```go db.Model(&employee).Association("C").Find(&employee.C) ``` 这样的写法,才能够查询到完整的Employee信息。现在我的问题是,如何查询工作于Name=“CompanyA”的公司的所有雇员信息?我能想到的是分两步: ```go //1. 先根据公司名查公司id db.First(&company, "name=?", "CompanyA") //2. 再用得到的company.ID在用户表中查 db.Preload("C").Find(&results, "c_id=?", company.ID) ``` 这样确实可行,但是我觉得会不会有更加简单的查询方式,一步就搞定的那种。官方文档看的很懵,网上搜索也没找到想要的东西,请问大家还知道别的写法吗?

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

869 次点击  ∙  1 赞  
加入收藏 微博
6 回复  |  直到 2022-09-08 17:11:27
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传