首页 >后端开发 >Golang >如何在 GORM 中执行多表连接?

如何在 GORM 中执行多表连接?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-24 14:42:02530浏览

How to Perform Multiple Table Joining in GORM?

GORM 中的多表连接

在 GORM 中连接多个表涉及在代表数据库中不同表的模型之间建立关系。多表连接的 GORM 语法利用 Joins() 方法来指定连接条件。

示例:

考虑以下示例,其中我们有三个表:

  • 部门(gorm.Modal,dep_name)
  • 员工(gorm.Modal,emp_id,emp_name,department_id)
  • EmployeeContact(gorm.Modal,employee_id,emp_contact_no)

以下查询根据指定的联接条件从所有三个表中检索数据:

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

要使用 GORM 执行此查询,我们可以使用以下代码:

<code class="go">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, ""
}</code>

在此代码中:

  • db.Table("employee") 指定查询的主表。
  • Select() 定义要作为的字段从连接的表中检索。
  • Joins() 为每个表建立连接条件。
  • Find() 将结果检索到结果变量中。

以上是如何在 GORM 中执行多表连接?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn