Maison > développement back-end > Golang > le corps du texte

Comment effectuer une jointure de plusieurs tables dans GORM ?

Mary-Kate Olsen
Libérer: 2024-10-24 14:42:02
original
435 Les gens l'ont consulté

How to Perform Multiple Table Joining in GORM?

Jointure de plusieurs tables dans GORM

Joindre plusieurs tables dans GORM implique d'établir des relations entre des modèles qui représentent différentes tables de la base de données. La syntaxe GORM pour les jointures de plusieurs tables exploite la méthode Joins() pour spécifier les critères de jointure.

Exemple :

Considérons l'exemple suivant où nous avons trois tables :

  • Département (gorm.Modal, dep_name)
  • Employé (gorm.Modal, emp_id, emp_name, Department_id)
  • EmployeeContact (gorm.Modal, Employee_id, emp_contact_no)

La requête suivante récupère les données des trois tables en fonction des conditions de jointure spécifiées :

SELECT * FROM department d, employee e, employeeContact ec WHERE d.id = e.department_id and e.id = ec.employee_id
Copier après la connexion

Pour effectuer cette requête à l'aide de GORM, nous pouvons utiliser le code suivant :

<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>
Copier après la connexion

Dans ce code :

  • db.Table("employee") spécifie la table principale de la requête.
  • Select() définit les champs à récupéré des tables jointes.
  • Joins() établit les critères de jointure pour chaque table.
  • Find() récupère les résultats dans la variable results.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!