이 예제를 이해하는 데 어려움을 겪고 있습니다. 답변을 얻었지만 어떻게 작동하는지 머리를 감싸는 데 문제가 있습니다. 조인은 정확히 어떻게 작동합니까?SQL JOIN 및 LEFT OUTER JOIN
는 선수와 팀 테이블의 구조를 검사 :이 예를 들어
PLAYER
-------------
PLAYER_ID NUMBER(9) PK
LAST_NAME VARCHAR2(25)
FIRST_NAME VARCHAR2(25)
TEAM_ID NUMBER
MANAGER_ID NUMBER(9)
TEAM
----------
TEAM_ID NUMBER PK
TEAM_NAME VARCHAR2(30)
을, 팀 매니저는 선수, 그리고 MANAGER_ID
열은 PLAYER_ID
열을 참조합니다. 관리자 인 플레이어의 경우 MANAGER_ID
은 NULL
입니다.
성명은 플레이어의 이름, 팀 이름 및 플레이어의 관리자 이름을 포함하여 모든 플레이어의 목록을 제공 할 것입니다.
는답변 :
SELECT p.last_name, p.first_name, m.last_name, m.first_name, t.team_name
FROM player p
LEFT OUTER JOIN player m ON (p.manager_id = m.player_id)
LEFT OUTER JOIN team t ON (p.team_id = t.team_id);
이것을 설명하는 가장 좋은 방법은 말 그대로 그림을 그리는 것입니다. 왼쪽에 하나, 오른쪽에 하나. 화살표는 어떤 방향으로 향하고 있습니까? 그것은 당신의 조인이 작동하는 방식입니다. "왼쪽에서 모든 레코드"또는 "오른쪽에서 모든 레코드"를 가져옵니다. – durbnpoisn