📝 기본 미션
p. 195의 확인 문제 4번 풀고 인증하기
다음 SQL은 회원으로 가입만 하고, 한 번도 구매한 적이 없는 회원의 목록입니다. 빈칸에 들어갈 가장 적합한 것을 고르세요.
SELECT DISTINCT M.mem_idm B.prod_name, M.mem_name, M.addr
FROM member M
LEFT OUTER JOIN buy B
ON M.mem_id = B.mem_id
OREDR BY M.mem_id;
① JOIN B.prod_name IS NULL
② LIMIT B.prod_name IS NULL
③ HAVING B.prod_name IS NULL
④ WHERE B.prod_name IS NULL
풀이 ) 빈칸의 위치는 FROM절과 ORDER절의 사이이다. 보기 2번인 LIMIT는 쿼리의 마지막에 위치하므로 제외, 보기 3번인 HAVING절은 GROUP BY로 그룹화 된 결과에 대한 조건절이다. 그룹화 되지 않았으므로 역시 제외...
보기 1번 JOIN은 내부 조인을 의도하는 것으로 보이지만, JOIN 선언 후 테이블 명이 존재하지 않으므로 제외한다.
정답은 보기 4번이며, 위 SQL의 LEFT OUTER JOIN 이후에 대한 조건을 의미한다.
고로 buy 테이블에서 prod_name이 존재하지 않는다는 조건이며, buy 테이블은 물품을 구매할때 레코드가 생성되는 것으로 추측된다.
즉 구매한 적이 없는 고객 정보를 추출하기 위한 조건 정보라 볼 수 있다.
📝 선택 미션
p. 183 [좀 더 알아보기] 손코딩 실행하고 결과화면 인증하기
buy 테이블과 member 테이블의 JOIN으로 출력한 정보