ホームページ >バックエンド開発 >Golang >GORM で複数のテーブル結合を実行するにはどうすればよいですか?

GORM で複数のテーブル結合を実行するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-24 14:42:02538ブラウズ

How to Perform Multiple Table Joining in GORM?

GORM での複数のテーブルの結合

GORM で複数のテーブルを結合するには、データベース内の異なるテーブルを表すモデル間の関係を確立する必要があります。複数のテーブル結合の GORM 構文は、Joins() メソッドを利用して結合基準を指定します。

例:

3 つのテーブルがある次の例を考えてみましょう。

  • 部門 (gorm.Modal, dep_name)
  • 従業員 (gorm.Modal, emp_id, emp_name, plan_id)
  • EmployeeContact (gorm.Modal,employee_id, emp_contact_no)

次のクエリは、指定された結合条件に基づいて 3 つのテーブルすべてからデータを取得します。

SELECT * FROM department d, employee e, employeeContact ec WHERE d.id = e.department_id and e.id = ec.employee_id

GORM を使用してこのクエリを実行するには、次のコードを使用できます。

<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>

このコードでは:

  • db.Table("employee") はクエリのプライマリ テーブルを指定します。
  • Select() はフィールドを定義します。
  • Joins() は各テーブルの結合基準を確立します。
  • Find() は結果を results 変数に取得します。

以上がGORM で複数のテーブル結合を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。