당연히 알고 있다고 생각하였던 개념인데, 누군가 물어보니 머리속이 하얘져서 대답하지 못하였다.
다시 한번 정확히 이해보는 기회라고 생각하고 정리해보고자 한다.
Inner와 Outer에 대하여 물어보았는데, Left와 Right 개념과 헷갈렸다.
이는 Outer Join에서 나오는 개념인데 Join 쿼리를 기준으로 왼쪽, 오른쪽, 또는 전체에 대하여 Join을 한다는 뜻으로 자세한 설명은 아래 Outer Join에서 작성할 예정이다.
예시)
SELECT * FROM TableA a [LEFT | RIGHT | FULL] OUTER JOIN TableB b ON a.id = b.id
기본적으로 조인이라고 할 경우 Inner Join을 뜻하며 두 테이블의 교집합이다.
처음에는 테이블의 열 교집합이라고 생각해서 두 테이블이 가지는 필드가 같은 열들만 보여준다고 착각하였으나. ON 뒤에 나오는 조건을 만족하는 모든 테이블을 출력한다고 생각하면 된다.
예시)
SELECT <열 목록>
FROM TableA a
INNER JOIN TableB b
ON a.id = b.id
컬럼들을 모두 Join하되 ON 뒤에 나오는 조건들을 만족하는 row와 함께 만족하지 않는 row도 조회되는 조인이다. 그 중에서 LEFT, RIGHT, FULL 3가지 조건이 있는데, LEFT는 왼쪽에 나오는 테이블에서 조건을 만족하지 않는 row를, RIGHT는 오른쪽에 나오는 테이블에서 조건을 만족하지 않는 row를, FULL은 만족하던 안하던 두 테이블의 모든 row를 가져오는 조인이다.
예시)
SELECT *
FROM TableA a
[LEFT | RIGHT | FULL] OUTER JOIN TableB b
ON a.id = b.id
조건에 만족하지 않으면 다른 테이블 컬럼의 내용이 없고, 조회될때 null 로 표시된다.
예시)

각 테이블에서 나올 수 있는 모든 조합만드는 조인이다.
사실 2학년때 이미 배운 내용들인데, 정확하게 알고 대답하지 못했다는 것에 답답한 마음과 더 열심히 공부해야겠다는 생각을 했다.