Bagaimana untuk Melakukan Gabungan Jadual Berbilang dengan GORM?

Linda Hamilton
Lepaskan: 2024-10-24 10:27:29
asal
988 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!