首頁 >後端開發 >Golang >如何在 GORM 中執行多表連線?

如何在 GORM 中執行多表連線?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-24 14:42:02538瀏覽

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