Golang Gorm 同时使用 Preload 和 Left Join 进行联表查询并过滤数据

💡 原文中文,约1600字,阅读约需4分钟。
📝

内容提要

文章介绍了如何在 Golang 中使用 Gorm 查询员工薪资信息,采用 Preload 预加载员工数据和 Left Join 进行过滤,以确保薪资列表包含员工详细信息。代码示例展示了查询和统计的处理,避免重复记录计数问题。

🎯

关键要点

  • 文章介绍了如何在 Golang 中使用 Gorm 查询员工薪资信息。
  • 有两个 MySQL 数据表:员工表 staff 和薪资表 salary,薪资表通过员工 ID 字段关联员工表。
  • 薪资 Struct 结构体包含了嵌入字段 Staff,用于关联员工信息。
  • 使用 Preload 预加载员工数据以返回薪资信息列表时包含员工详细信息。
  • 使用 Left Join 进行过滤,根据员工的某些字段进行查询。
  • 示例代码展示了如何使用 Gorm 的 Preload 和 Left Join 实现需求。
  • 在统计薪资记录时,使用 Distinct 避免重复记录计数问题。
  • Preload 需要在 count 统计之后使用,以避免不必要的数据预加载。
  • 作者是来自山东烟台的开发者,欢迎交流软件开发需求。
➡️

继续阅读