happy cat image

everdevel

coding

login
알림X
  • 현재 댓글에 대한 답변만 표시합니다.
  • 표시할 댓글 이력이 없거나 로그인해 주세요.
























everdevel이 만든 무료 클라우드 개발환경을 소개합니다.

방문해 주셔서 감사합니다.

2개 테이블에서 데이터 불러오기(RIGHT JOIN)

MySQL RIGHT JOIN

앞에서 우리는 LEFT JOIN문에 대해서 학습했습니다.

LEFT JOIN이 있으면 RIGHT JOIN도 있을거라고 생각하실 수 있습니다.

없습니다.

농담입니다. 있습니다. ㅋㅋ

RIGHT JOIN은 이제 감이 오실 수 있습니다.

맞습니다. 오른쪽 테이블을 기준으로 삼습니다.

RIGHT JOIN문 사용하기

SELECT s.name, a.address FROM student s RIGHT JOIN address a ON(s.num = a.memberID);

위와 같이 JOIN문 앞에 RIGHT가 붙습니다.

그럼 위의 쿼리문을 입력합니다.

MySQL RIGHT JOIN

위의 결과는 INNER JOIN의 결과인 아래의 결과가 똑같습니다.

MySQL RIGHT JOIN

이유는 오른쪽 테이블인 address테이블의 데이터는 모두 minnie의 데이터이기 때문입니다.

즉, student테이블의 num필드에 없는 값을 넣어야합니다.

그럼 실험을 위해 num필드의 값과 일치하지 않는 값을 넣겠습니다.

address 테이블에 다음이 데이터를 넣습니다.

INSERT INTO address(memberID, address) VALUES(20200009, 'Songpa Seoul S.Korea');
MySQL RIGHT JOIN

잘 들어갔는지 확인해 봅시다.

SELECT * FROM address;
MySQL RIGHT JOIN

student 테이블과 일치하지 않은 레코드를 추가했습니다.

그러면 위에서 사용한 RIGHT JOIN문을 다시 실행하겠습니다.

SELECT s.name, a.address FROM student s RIGHT JOIN address a ON(s.num = a.memberID);
MySQL RIGHT JOIN

right 테이블을 기준으로 하기 때문에 student테이블에는 맞는 데이터가 없더라도 우리가 방금 추가한 데이터가 표시됩니다.

그러면 이번엔 right테이블에 데이터가 있고 left 테이블인 student에는 매칭 데이터가 없는 right 테이블의 레코드를 불러오겠습니다.

MySQL RIGHT JOIN

이전 강좌와 같이 WHERE문을 사용합니다.

WHERE s.num IS NULL;

그럼 최종적으로

SELECT s.name, a.address FROM student s RIGHT JOIN address a ON(s.num = a.memberID) WHERE s.num IS NULL;

실행을 해보면..

MySQL RIGHT JOIN

현재까지의 db 백업 (아래는 현재까지의 작업을 백업한거라서 중도에 들어오신분들을 위한거에요.)

david_db smart study_db

봐주셔서 감사합니다. 문의 또는 잘못된 설명은 아래의 댓글에 부탁드립니다.
당신의 작은 누름이 저에게는 큰 희망이 됩니다.

컨텐츠의 내용을 더 보려면 바로 아래에서 확인할 수 있습니다.


    
    

강좌로 돌아가기

댓글 0개

정렬기준