Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Melakukan Gabungan Jadual Berbilang dengan GORM?

Bagaimana untuk Melakukan Gabungan Jadual Berbilang dengan GORM?

Linda Hamilton
Linda Hamiltonasal
2024-10-24 10:27:29979semak imbas

How to Perform Multiple Table Joins with GORM?

Berbilang Jadual Bercantum dalam GORM

Menyertai jadual dalam GORM membolehkan anda mendapatkan semula data berkaitan daripada berbilang jadual secara serentak. Begini cara melaksanakan pertanyaan gabungan yang melibatkan tiga jadual:

Struktur Jadual

Pertimbangkan struktur jadual berikut:

  • Jabatan (gorm.Model, dep_name)
  • Pekerja (gorm.Model, emp_id, emp_name, department_id)
  • Employee Contact (gorm. Model, employee_id, emp_contact_no)

Contoh Pertanyaan

Andaikan anda ingin mendapatkan semula semua lajur daripada tiga jadual di mana ID jabatan sepadan dengan jabatan_id pekerja, dan ID pekerja itu sepadan dengan id_pekerjaHubungi:

Pertanyaan 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 Equivalent

<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>

Dalam contoh ini:

  • Table() menentukan jadual untuk memulakan cantuman.
  • Select() memilih lajur untuk diambil daripada setiap jadual yang digabungkan.
  • Sertai () mewujudkan perhubungan gabungan berdasarkan kekangan utama asing.
  • Find() mendapatkan semula keputusan ke dalam kepingan hasil.

Atas ialah kandungan terperinci Bagaimana untuk Melakukan Gabungan Jadual Berbilang dengan GORM?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn