happy cat image

everdevel

僕の戦争 Reiner Transformation

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

EEOS

에버디벨 책을 학습할 수 있는 클라우드 개발 환경을 제공합니다.
개발환경구축없이 태블릿에서도 개발할 수 있는 책의 예제와 프로젝트
오직 당신을 위한 스토리지, URL, DB, 무제한 트래픽
그리고 웹기반 개발환경을 제공합니다.

더 알아보기
에버디벨이 만든 무료 클라우드 개발환경을 소개합니다.

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

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

    
    

강좌로 돌아가기

댓글 0개

정렬기준