수색…


소개

일대 다 (1 : M)의 개념은 행을 서로 결합하는 것과 관련이 있습니다. 특히 한 테이블의 단일 행이 다른 행의 많은 행과 일치하는 경우가 그렇습니다.

1 : M은 단방향입니다. 즉, 1 : M 관계를 쿼리 할 때 언제든지 '하나의'행을 사용하여 다른 테이블의 '많은'행을 선택할 수 있지만 '많은'행을 하나만 사용할 수는 없습니다. 하나 이상의 '하나'행 이상을 선택하십시오.

비고

대부분의 경우, 1 : M 관계로 작업하려면 기본 키외래 키 를 이해해야합니다.

기본 키 는 해당 열의 단일 행이 단일 엔티티를 나타내는 테이블의 열이거나 기본 키 열의 값을 선택하면 정확히 한 행이됩니다. 위의 예를 사용하면 EMP_ID가 단일 직원을 나타냅니다. 단일 EMP_ID를 조회하면 해당 직원을 나타내는 단일 행이 표시됩니다.

외래 키 는 다른 테이블의 기본 키에 해당하는 테이블의 열입니다. 위의 예에서 EMPLOYEES 테이블의 MGR_ID는 외래 키입니다. 일반적으로 두 테이블을 조인하려면 한 테이블의 기본 키와 외래 키를 기반으로 다른 테이블에 조인합니다.

예제 회사 테이블

관리자 인 모든 직원이 1 명 이상의 직원을 관리하고 모든 직원이 1 명의 관리자 만있는 회사를 생각해보십시오.

그 결과 두 개의 테이블이 생성됩니다.

직원

EMP_ID 이름 LAST_NAME MGR_ID
E01 남자 애플 시드 M02
E02 에린 맥클 모어 M01
E03 콜비 서류 M03
E04 손선 M01

관리자

MGR_ID 이름 LAST_NAME
M01 화려한 맥퀸
M02 송아지 바지
M03 존스

단일 관리자가 관리하는 직원 확보

SELECT e.emp_id , e.first_name , e.last_name FROM employees e INNER JOIN managers m ON m.mgr_id = e.mgr_id WHERE m.mgr_id = 'M01' ;

결과 :

EMP_ID 이름 LAST_NAME
E02 에린 맥클 모어
E04 손선

궁극적으로 우리가 쿼리하는 모든 관리자에 대해 우리는 1 명 이상의 직원이 반환되는 것을 보게됩니다.

단 하나 직원을위한 매니저를 얻으십시오

이 예제를 볼 때 위의 예제 테이블을 참조하십시오.

SELECT m.mgr_id , m.first_name , m.last_name FROM managers m INNER JOIN employees e ON e.mgr_id = m.mgr_id WHERE e.emp_id = 'E03' ;

MGR_ID 이름 LAST_NAME
M03 존스

위의 예와는 반대이므로 우리가 쿼리하는 모든 직원에 대해 하나의 해당 관리자 만 볼 수 있습니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow