티스토리 뷰

서론

관계형 데이터베이스에서 두 테이블을 합치는 방법중 하나인 LEFT JOIN과 ON의 사용법을 소개합니다.

본론

관계형 데이터베이스에서는 두 테이블에서 같은 칼럼을 이용해 하나의 테이블처럼 사용할 수 있습니다.

LEFT JOIN

LEFT JOIN을 이해하기 위해서는 아래 다이어그램을 참고하는 것이 좋습니다.


출처: https://www.w3schools.com/sql/sql_join_left.asp


다이어그램 범위에서 TABLE1만으로 이루어진 부분도 포함되는 것을 알 수 있습니다. 즉, TABLE1은 그대로 두고 TABLE1과 TABLE2의 교집합 부분만을 합쳐준다고 생각할 수 있습니다.

ON

JOIN할 때에 교집합 부분의 조건을 나타내는 절입니다.
Person과 Device라는 테이블이 존재할 때 Person의 id가 Device에 person_id로 존재한다고 가정할 때 두 테이블을 합치기 위해서는 다음과 같이 나타낼 수 있습니다.

SELECT Person.name, Device.name
FROM Person
LEFT JOIN Device
ON Person.id = Device.person_id;

다이어그램에 대한 부가설명

아래 SQL은 Customers 테이블에 Orders 테이블을 LEFT JOIN 하고 있습니다.

SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;

결과를 보면 Orders.OrderID가 중간중간 빈곳이 보입니다.


LEFT JOIN은 Customers 테이블을 기준으로 JOIN된 것이기 때문에 ON 에 부합하는 Orders의 레코드가 존재하지 않는다면 빈 값으로 표현되는 것입니다.

결론

다이어그램의 의미를 이해하면 JOIN에 대한 어려움이 풀리는 것 같습니다. 예를 들어 RIGHT JOIN은 LEFT JOIN의 반대가 될 것이고, INNER JOIN은 교집합 부분만을 의미할 것이라고 예상해볼 수 있습니다.

'개발자 > 데이터베이스(DB)' 카테고리의 다른 글

[SQL] Function 만들기  (0) 2024.02.13
[SQL] 순위를 지정하는 RANK 함수  (0) 2024.02.07
[SQL] GROUP BY와 HAVING  (0) 2024.02.06
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/11   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
글 보관함