GORM での複数のテーブル結合
GORM でテーブルを結合すると、複数のテーブルから関連データを同時に取得できます。 3 つのテーブルを含む結合クエリを実行する方法は次のとおりです。
テーブル構造
次のテーブル構造を考えてみましょう:
クエリの例
部門の ID が従業員の部門 ID と一致するすべての列を 3 つのテーブルから取得するとします。その従業員の ID は、employeeContact の従業員 ID と一致します:
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 相当
<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>
Inこの例:
以上がGORM を使用して複数のテーブル結合を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。