GORM을 사용하여 여러 테이블 조인을 수행하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-10-24 10:27:29
원래의
987명이 탐색했습니다.

How to Perform Multiple Table Joins with GORM?

GORM의 다중 테이블 조인

GORM의 테이블 조인을 사용하면 여러 테이블에서 관련 데이터를 동시에 검색할 수 있습니다. 세 개의 테이블을 포함하는 조인 쿼리를 수행하는 방법은 다음과 같습니다.

테이블 구조

다음 테이블 구조를 고려하세요.

  • Department (gorm.Model, dep_name)
  • 직원 (gorm.Model, emp_id, emp_name, Department_id)
  • EmployeeContact (gorm. Model, Employees_id, emp_contact_no)

예제 쿼리

부서 ID가 직원의학과 ID와 일치하는 세 테이블의 모든 열을 검색한다고 가정합니다. 해당 직원의 ID가 EmployeeContact의 Employee_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 이 예:

  • Table()은 조인을 시작할 테이블을 지정합니다.
  • Select()는 조인된 각 테이블에서 검색할 열을 선택합니다.
  • 조인 ()는 외래 키 제약 조건을 기반으로 조인 관계를 설정합니다.
  • Find()는 결과 슬라이스로 결과를 검색합니다.

위 내용은 GORM을 사용하여 여러 테이블 조인을 수행하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!