GORM 中的多个表连接
GORM 中的连接表允许您同时从多个表中检索相关数据。以下是如何执行涉及三个表的联接查询:
表结构
考虑以下表结构:
示例查询
假设您要从三个表中检索部门 ID 与员工的 Department_id 匹配的所有列,并且该员工的 ID 与员工联系人的 email_id 匹配:
SQL 查询:
<code class="sql">SELECT * FROM department d, employee e, employeeContact ec WHERE d.id = e.department_id and e.id = ec.employee_id;</code>
GORM 等效
<code class="go">import ( "gorm.io/gorm" ) func MultipleJoinExample(db *gorm.DB) error { type Result struct { DepartmentID uint EmployeeID uint EmployeeName string EmployeeContactNo string } var results []Result if err := db.Table("employee").Select("department.id, employee.department_id, employeeContact.employee_id, employee.emp_name, employeeContact.emp_contact_no"). Joins("JOIN department on department.id = employee.department_id"). Joins("JOIN employeeContact on employeeContact.id = employee.id"). Find(&results).Error; err != nil { return err } return nil }</code>
中此示例:
以上是如何使用 GORM 执行多个表连接?的详细内容。更多信息请关注PHP中文网其他相关文章!