如何在 GORM 中连接多个表

2023-12-30

我是 GOlang 和 GORM 的新手,我对如何使用 GORM 进行多表连接有些困惑。

Example:

Tables:

Department - Fields (gorm.Modal, dep_name)
Employee - Fields (gorm.Modal, emp_id, emp_name, department_id) //employee is department table child 
EmployeeContact - Fields (gorm.Modal, employee_id, emp_contact_no)//Employee contact table is employee table child

Query

SELECT * FROM department d, employee e, employeeContact ec WHERE d.id = e.department_id and e.id = ec.employee_id

如何使用 GORM 进行上述查询?


我一直在这里寻找解决方案,但由于我已经自己弄清楚了,所以我也想将其发布在这里。我的查询有点不同,我只连接了 2 个表,但我认为这个也应该有效。

if err := db.Table("employee").Select("department.id, employee.department_id, employeeContact.employee_id").Joins("JOIN department on department.id = employee.department_id").Joins("JOIN employeeContact on employeeContact.id = employee.id").Find(&results).Error; err != nil {
    return err, ""
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 GORM 中连接多个表 的相关文章

  • 投射回更专业的界面

    我正在用 Go 编写一个游戏 在 C 中 我将所有实体类存储在 BaseEntity 类的数组中 如果一个实体需要在世界中移动 那么它将是一个从 BaseEntity 派生的 PhysEntity 但添加了方法 我尝试模仿这是 go pac
  • Golang中如何删除字符串的最后一个字符?

    我想删除字符串的最后一个字符 但在此之前我想检查最后一个字符是否是 如何才能做到这一点 以下是删除尾随加号的几种方法 package main import fmt strings func TrimSuffix s suffix stri
  • 重新插入通道导致死锁

    我有稳定的入站 作业 流 将其输入到无缓冲通道中 我有一个for range循环来迭代项目并处理它们 如果处理该项目失败 我会将项目重新插入通道中 以便稍后重试 问题是当我将项目重新插入通道时 它陷入僵局 我明白为什么会发生这种情况 处理器
  • Golang中如何获得100%的代码覆盖率? [复制]

    这个问题在这里已经有答案了 我无法获得 100 的代码覆盖率 因为我无法在 Golang 中测试 Fatals 我发现了一些问答 包括this one https stackoverflow com questions 30688554 h
  • 我应该避免在 golang 中使用单例包吗?

    现在我有一个包裹store包含以下内容 package store var db Database func Open url string error open db connection func FindAll model inter
  • Go 编程语言中的“方法需要指针接收器”

    我刚刚看到了 Go 编程语言的演示 并想尝试写几行 一切工作正常 直到我尝试在这种情况下使用界面 我该如何解决这个问题 package main import fmt type entity float32 func e entity in
  • 为什么Golang无法从前面小写字符的struct生成json?

    我正在尝试打印我创建的结构体的 json 结果 如下所示 type Machine struct m ip string m type string m serial string 并打印出来 m Machine m ip test m t
  • bazel go_embed_data“无法嵌入”

    我将以下 bazel BUILD 配置为 gazelle name gazelle go embed data name static files srcs glob static package main var staticFS go
  • 为什么 Go 中的函数不能命名为“init”?

    所以 今天在编码时我发现创建一个名为init产生错误method init not found 但是当我将其重命名为startup一切都很好 init 这个词是为 Go 中的某些内部操作而保留的 还是我在这里遗漏了一些东西 是的 该功能in
  • 与 Reflect.StructTag.Get 不兼容

    我当时在 Google Cloud 中工作 一切都很好 但是当我在 PC 中克隆所有项目时 每个 JSON 结构中都有此消息 结构体字段标签bson edad json edad omitempty 与reflect StructTag G
  • 使用 StructScan 将 postgresql 数组获取到结构中

    测试数据 CREATE TABLE test id int data text INSERT INTO test id data VALUES 1 a b c 去代码吧 第一个 一个运行良好的 func main db sqlx Open
  • Golang SSL TCP套接字证书配置

    我正在创建一个 Go TCP 服务器 不是 http s 并且尝试将其配置为使用 SSL 我有一个 StartCom 免费 SSL 证书 我正在尝试使用它来完成此任务 我的服务器代码如下所示 cert err tls LoadX509Key
  • 如何避免 Google App Engine 标准环境中 Gorilla 会话的内存泄漏?

    我正在使用 Gorilla 在 Google App Engine 上启用会话变量 到目前为止 我只导入了 github com gorilla sessions 但 Gorilla 的页面显示 如果您不使用 gorilla mux 则需要
  • 运行时错误:分配给 nil 映射中的条目

    我正在尝试生成一个地图 然后将其转换为 yaml 文件 如下所示 uid kasi cn Chaithra street fkmp nandan cn Chaithra street fkmp remya cn Chaithra stree
  • 如何在Postgresql时间戳中存储Golang time.time?

    我可以知道如何存储time timePostgresql 中的对象 例如 SQL 查询 INSERT INTO UserAccount email login time VALUES email protected cdn cgi l em
  • http:多余的response.WriteHeader调用

    我有一个HandleFunc 如果成功的话 我希望 显然 能够 sent a 200回复 在回复中写一条信息性消息 但是以下代码片段 在快乐路径中执行 if fullRun w Write byte successMsg w WriteHe
  • golang 将 big.Float 转换为 big.Int

    将big Float转换为big Int 我在下面编写代码 但它溢出了uint64 那么将big Float转换为big Int的正确方法是什么 package main import fmt import math big func Fl
  • go语言读取并合并两个Yaml文件

    假设我们有两个 yaml 文件 master yaml someProperty someVaue anotherProperty anotherValue 覆盖 yaml someProperty overriddenVaue 是否可以解
  • 如何使用 glide golang 安装私有仓库

    我在用glide作为我的 golang 项目的包管理 我无法使用私有存储库glide get bezos gitlab com gomock 即使我提供了正确的凭据 它也会询问用户名和密码 但最终会抛出错误 请提出任何想法 这与glide或
  • 使用结构解析 YAML

    我创建了以下 YAML 文件来提供用户需要提供的一些配置 Environments sys1 models app type app1 service type fds app type app2 service type era sys2

随机推荐

  • 如何使用 guizero 在 python 中知道 Tic Tac Toe 中谁是获胜者

    我创建了一个名为 Tic Tac Toe 的游戏 有 2 位玩家 其中一位是 X 其中一位是 O 您所要做的就是将您的符号 3 连成一排 而其他人不会阻挡您 游戏的 GUI 如下所示 Code from guizero import App
  • 在 ubuntu 中使用 headless chrome 打印 PDF

    我正在尝试使用 chrome headless 和以下命令行在 ubuntu 中打印 pdf google chrome headless disable gpu print to pdf gen2 pdf file home user D
  • Java 异常从资源 .wav 读取流

    我想我的代码没问题 我的 jar 文件里面的 wav 没问题 但是当我尝试使用 getResourceAsStream 加载它时 出现错误 这是我的错误 java io IOException mark reset not supporte
  • XML 中的未知属性警告

    AndroidManifest 和 XML 布局向我展示了Unknown attribute android 即使属性存在并且应用程序在设备上运行 也会发出警告 例子 Unknown attribute android maxSdkVers
  • 适用于 Java 的小型、简约且快速的 XML 库?

    有时我需要解析 XML 文件 并且仅解析 并且我不想通过手动执行此操作String indexOf 所以我的需要是使用可能最小且快速的 XML 解析库 不幸的是 我不知道类似的事情GSON 180kb 我已经导入了dom4j 但之后我遇到了
  • Angular2/JavaScript - 在(点击)上增加/减少 1

    我想在用户按下添加按钮时递增 递减 然后相应地更新金额值 我尝试过几次 但不幸的是我没有成功 这是代码 addToCart this amount 1 addItem this amount console log plus is this
  • 为什么我不能使用 Guid 作为泛型类型约束?

    我有如下通用方法 我想将 T 限制为仅 Guid 类型 如下所示 public static EntityFindApiResponse EntityFind
  • 在 Django 管理更改列表中,如何显示空格而不是默认的“(无)”?

    当数据库中的字段为空时 Django 在显示更改列表时插入 None 来保留空值的位置 虽然是描述性的 但当变更列表上有很多字段时 一切看起来都非常忙碌 而空白字段同样有帮助 但不会那么混乱 那么有什么方法可以更改 Django 用于表示更
  • 没有 SSH 访问权限的 Rsync

    首先 我不确定这是提出这个问题的最佳位置 所以如果它需要移动 那很酷 我有共享主机 没有 SSH 访问权限 在部署 rsyncing 方面我有哪些选择 我用 PHP 构建应用程序并使用 GIT 不确定这是否会改变事情 使用的 Rsync 旧
  • SBT 多项目中的传递依赖错误

    我正在构建一个 SBT 多项目项目 其中有common模块和logic模块 以及logic dependsOn common In common SparkSQL 2 2 1 org apache spark spark sql 2 2 1
  • WPF属性系统如何经济?

    据说WPF的设计者已经让它变得经济或者性能更高了 有人可以用一个例子来解释一下幕后发生的事情使 WPF 属性系统更加经济吗 您可能指的是依赖属性比普通 CLR 属性 便宜 这一事实 简单来说 依赖属性是使用稀疏数据结构实现的仅当在对象上设置
  • 格式化一个简单的字符串,但是`java.lang.NoSuchMethodError`

    我正在使用 Scala 2 9 2 运行 Scala 并测试一段简单的代码 这段代码是 好的 val title Hashing file s format sizeToStr file length 但我无法理解什么是什么 当我将该代码放
  • 相当于 VB6 中的 Directory.CreateDirectory()

    尝试一次创建多层文件夹 C pie appleie recipes 不使用多个不同的命令 是否有一种类似于 Directory CreateDirectory 的简单方法 这是我在我的一个项目中使用的一些代码 它需要将文件系统对象的引用添加
  • VBA If Else 在 For Next 循环中

    我需要在 For Next 循环中使用 VBA If Else 语句 我尝试了各种语句的排列 但它们都出错了 Sub TestForIfElse Dim Counter As Integer Dim i As Integer For i 1
  • 如何将多个对象分组以便将它们作为一个单元旋转?

    我需要一些关于 OpenGL 中旋转任务的最佳方法的指导 我知道如何使用四元数在 3D 空间中旋转对象 我可以平移它们 一切都很好 但我想知道将不同对象的集合视为单个实体以进行旋转的最佳方法 例如 假设您有一张桌子 上面放着物品 每个都有自
  • 在 python 3.x 中创建给定列表的所有子集的列表

    如何在 python 3 x 中创建给定列表的所有子集的列表 给出的列表就像 1 2 3 我想要一个像这样的输出 1 2 3 1 2 2 3 1 3 1 2 3 您可以使用itertools combinations https docs
  • 如何找到Kubernetes集群的集群和服务CIDR?

    一旦 Kubernetes 集群已经运行 如何找到它的集群 服务 CIDR 我知道对于 Minikube 它是 10 0 0 1 24 对于 GKE 您可以通过以下方式找到 gcloud container clusters describ
  • 如何实现 DDD 存储库来处理具有多个实体的查询?

    我正在努力在 net 解决方案中使用 DDD 来实现需求 我会尽量减少细节 实体 类别 UId 名称 属性 UId 名称 属性值 属性值 UId 名称 ParentAttributeUId 进程 UId 名称 属性值 类别 数据模型 每个进
  • Bootbox:使默认按钮与 ENTER 键一起使用?

    正如标题所示 我想添加 Enter 键作为 Bootbox js 的事件处理程序 当调用alert 弹出窗口时 您可以按 Enter 键将其关闭 但 Bootbox js 的情况并非如此 我不知道如何访问 Bootbox js 内的按钮来添
  • 如何在 GORM 中连接多个表

    我是 GOlang 和 GORM 的新手 我对如何使用 GORM 进行多表连接有些困惑 Example Tables Department Fields gorm Modal dep name Employee Fields gorm Mo