반응형
조인이란?
두개 이상의 테이블을 결합하여 데이터를 출력하는 방법.
보통 Primary key혹은 Foreign key로 두 테이블을 연결합니다. 테이블을 연결하려면 적어도 하나의 칼럼은 서로 공유되고 있어야합니다.
-> 두개의 다른 테이블에서 ON 조건절을 통해 만들어진 컬럼과 두개의 테이블이 별칭을 통해 생성된 컬럼이 있는 하나의 테이블을 상상하시면 쉽게 이해가 되실겁니다.
Inner Join
한국말로는 내부조인이라고도 말을 하며 JOIN 조건에서 동일한 값이 있는 행만을 출력합니다. INNER JOIN 은 WHERE 절에서 사용하던 JOIN 조건을 FROM 절에서 정의하겠다는 의미이므로 USING 이나 ON 절을 필수적으로 사용해야 합니다.
Left Outer Join
A테이블을 기준으로 조인하고 싶을 경우 사용합니다. A의 레코드는 무조건 출력이 될 것이고, B의 데이터 같은 경우 매칭 되는 값이 없을 경우 NULL이 출력됩니다.
SELECT A.ANIMAL_ID, A.NAME
FROM ANIMAL_INS A LEFT OUTER JOIN ANIMAL_OUTS B
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE A.DATETIME > B.DATETIME
ORDER BY A.DATETIME ASC
Right Outer Join
B테이블을 기준으로 조인하고 싶을 경우 사용합니다. B의 레코드는 무조건 출력이 될 것이고, A의 데이터 같은 경우 매칭 되는 값이 없을 경우 NULL이 출력됩니다.
SELECT B.ANIMAL_ID AS ANIMAL_ID, B.NAME AS NAME
FROM ANIMAL_INS A RIGHT OUTER JOIN ANIMAL_OUTS B
ON A.ANIMAL_ID = B.ANIMAL_ID
WHERE A.NAME IS NULL AND B.NAME IS NOT NULL
해석
A테이블과 B테이블을 B테이블의 ID 기준으로 채우며 조인 시킨 후, 조인시켰을 때 A의 NAME이 NULL이고 B의 NAME이 NULL이 아닌 것 중 B테이블의 ANIMAL_ID와 B테이블의 NAME을 출력
반응형