Jointures de tables multiples dans GORM
Joindre des tables dans GORM vous permet de récupérer des données associées à partir de plusieurs tables simultanément. Voici comment effectuer une requête de jointure impliquant trois tables :
Structure de table
Considérez la structure de table suivante :
Exemple de requête
Supposons que vous souhaitiez récupérer toutes les colonnes des trois tables où l'ID d'un service correspond à l'ID du service d'un employé, et l'ID de cet employé correspond à l'id_employé d'un employéContact :
Requête 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>
Équivalent GORM
<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>
Dans cet exemple :
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!