MySQL JOIN 활용법

JINSUNG LEE·2021년 10월 15일
0
post-thumbnail
post-custom-banner



지난 시간 MySQL을 통해 CRUD를 응용하는 법을 설명하였다.

이번에는 MySQL에서 다른 테이블간의 column을 조회할 수 있는 JOIN 쿼리문에 대해 알아

    									보즈아아아~~



JOIN 종류

위의 사진은 실제로 JOIN을 할 경우 A 테이블, B 테이블 두 가지로 나눠 접근하는 방식을 종합하였다.

JOIN 문이 너무 많아 보일수도 있지만, 실제로 많이 쓰이는 문법은 INNER JOIN, LEFT JOIN 이 두가지 쿼리문이 가장 많이 응용된다.

RIGHT JOIN의 경우 테이블의 위치만 변경하면 LEFT JOIN이 되기 때문에 더욱 쓸 이유가 없다.

테이블과의 연결을 하기 위해선 아래와 같은 예시 쿼리문이 작성되어 있어야 한다.

  • ex)

A 테이블의 primary key 역할을 수행하는 id
B 테이블의 foreign key 역할을 수행하는 A_id



  • 현재 짜여진 SQL 테이블


    • user

    • information




INNER JOIN


SELECT information.price, information.list, information.quantity, user.name FROM information
INNER JOIN user ON user.id = information.user_id

user.idinformation.user_id 가 동일한 모든 정보를 조회한다.

정식으로 쿼리문을 작성하면 INNER JOIN 간략화하여 JOIN으로 쓸수도 있다.

만일 카리나의 값만 조회하고 싶다면 벤다이어그램에서 어떤 경우의 예일까?

해당 경우는 위의 벤다이어그램에서 교집합에 해당된다.

SELECT information.price, information.list, information.quantity, user.name FROM information
INNER JOIN user ON user.id = information.user_id WHERE user.name = '카리나';




LEFT JOIN


SELECT information.price, information.list, information.quantity, user.name FROM information
LEFT JOIN user ON user.id = information.user_id
WHERE price IS NULL

만일 information의 price가 NULL값인 column만 조회하고 싶은 경우 LEFT JOIN을 활용한다.

결과 user.name일반인이 NULL값을 소유하고 있는 관계로 해당 column이 조회되었다.

이는 JOIN 벤다이어그램 그래프를 생각하고 접근하면 더 쉽게 이해가 갈수 있다.




결론

JOIN은 테이블간의 연결 고리와 비슷한 특성을 가지고 있으며, 만일 해당 테이블의 한 유저 정보를 조회하기를 원할 경우 JOIN 쿼리문이 필요로 쓰이게 되는 것이다.

profile
https://californialuv.github.io/Tech_Blog 이사 갔어용 🌎 🚀
post-custom-banner

0개의 댓글