Maison  >  Article  >  développement back-end  >  Comment effectuer une jointure de plusieurs tables dans GORM ?

Comment effectuer une jointure de plusieurs tables dans GORM ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-24 14:42:02435parcourir

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

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>

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!

Déclaration:
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