TIL_ MySQL[JOIN]

해달·2021년 8월 28일
0

TIL

목록 보기
37/80
post-thumbnail

Today 공부

  • JOIN의 종류

JOIN

LEFT JOIN

  • 자기한테 존재하는 모든 것 + (조건) 자기한테 존재하는 모든 것 = 한개의 테이블
  • 왼쪽에 값이 있고 오른쪽에 없으면 NUll 출력
  • Join된 값이 Null로 출력이 된다는 것은
    왼쪽에는 값이 있는데, 그 값에 해당되는 오른쪽 행은 없구나

    가장 많이 사용 되는 이유 : A라는 표를 기준으로 정보를 가져올때 A의 정보는 다 가져와고 B의 없는 정보도 가져오기때문에
ex)
SELECT tid, topic.title, author_id, name, profile.title AS job.title 
FROM topic
LEFT JOIN author
ON topic.author_id = author.adid
LEFT JOIN profile
ON author.prifile_id = profile.pid
WHERE aid = 1; // 위에서 합쳐진 테이블 안에서 추가로 조건 걸 수 있음
// aid의 값이 1인 컬럼만 출력

INNER JOIN

  • 앞에다가 INNER, LEFT, OUTER 안쓰고 join 만쓰면 inner조인이다
  • 양쪽 모두에만 존재하는 행만을 가지고 새로운 표를 만든다
  • null행 존재하지않음

FULL OUTER JOIN (합집합)

  • 왼쪽에도 있고, 오른쪽에도 있는 모든 행 출력
  • 오른쪽에 있는 테이블을 기준으로, 왼쪽에 있는 테이블을 구성한다
  • [from] -> left join -> rigth join -> [from] -> 중복값 삭제

  • 많은 데이터베이스에서 FULL OUTER JOIN 지원 안함
  • 지원하지 않을 때 만드는 방법 : (left join) UNION (rigth join)

마치며,

생활코딩 이고잉님의 수업을 보면서 join에 대해서 정리하면서 다시 한번 되짚어 보았다.
ON으로 중복해서 여러 테이블을 붙일수 있고, 필요한 자료만 출력 할 수 있고 여러가지의 join에 대해서 좀 더 잘 알게 되었다. 좀 더 익숙하게 쓸 수 있도록 많이 봐야겠다.

0개의 댓글