happy cat image

everdevel

Be Magical

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
























EEOS

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

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

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

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

MySQL LEFT JOIN

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

정확히는 INNER JOIN문이었습니다.

INNER JOIN문의 결과는 다음과 같았습니다.

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

즉, 두 테이블간에 유효한 데이터만 불러왔습니다.

한 테이블에 데이터가 없으면 그 데이터는 안불러오죠.

하지만 당연하게도 주소를 등록하지 않은 고객들도 있습니다.

주소를 등록하지 않은 고객들의 정보도 함께 불러오겠습니다.

LEFT JOIN문 사용하기

LEFT는 왼쪽을 의미하지요?

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

위의 쿼리문에서 student 테이블은 왼쪽에 있고 address 테이블은 오른쪽에 있습니다.

즉, 왼쪽에 있는 테이블을 기준으로 한다는 의미입니다.

그러면 다음의 쿼리문을 사용해 결과를 확인합시다.

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

단순히 JOIN앞에 LEFT만 넣었습니다.

MySQL LEFT JOIN

어떤가요? 결과가 다릅니다.

address 테이블에 정보가 없더라도 LEFT JOIN을 사용하면 LEFT에 해당하는 테이블인 student 테이블에 정보가 모두 나타납니다.

자 그러면 하나 더 해봅시다. 이번에는 address 테이블에 데이터가 없는 student 데이터만 불러보겠습니다.

MySQL LEFT JOIN

간단합니다. 조건문을 추가합니다. student테이블의 대표 필드값이 NULL인 것을 불러옵니다.

그려면 조건문으 다음과 같습니다.

WHERE a.addressID IS NULL;

그럼 최종적으로 쿼리문은 다음과 같습니다.

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

결과와 같이 address 테이블에 데이터가 없는 student 테이블이 데이터만 보입니다.

MySQL LEFT JOIN

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

david_db smart study_db

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


    
    

강좌로 돌아가기

댓글 0개

정렬기준