p.195의 확인 문제 4번 풀고 인증하기
- 다음 SQL은 회원으로 가입만 하고, 한 번도 구매한 적이 없는 회원의 목록입니다. 빈칸에 들어갈 가장 적합한 것을 고르세요.
SELECT DISTINCT M.mem_id, B.prod_name, M.mem_name, M.addr FROM member M LEFT OUTER JOIN buy B ON M.mem_id = B.mem_id [ 빈칸 ] ORDER BY M.mem_id;
1 - JOIN B.prod_name IS NULL
2 - LIMIT B.prod_name IS NULL
3 - HAVING B.prod_name IS NULL
4 - WHERE B.prod_name IS NULL정답 : 4
한 줄씩 살펴보자면
SELECT DISTINCT M.mem_id, B.prod_name, M.mem_name, M.addr
중복된 값 없이 M.mem_id, B.prod_name, M.mem_name, M.addr를 출력
FROM member M
LEFT 테이블을 member로 설정
LEFT OUTER JOIN buy B
LEFT 테이블의 내용은 모두 출력되어야 하며 오른쪽 테이블은 buy로 설정
ON M.mem_id = B.mem_id
M테이블의 mem_id와 B테이블의 mem_id가 같은 것을 출력
WHERE B.prod_name IS NULL
위의 조건을 만족하는 것 중에서 B테이블의 prod_name이 null인 것을 출력
ORDER BY M.mem_id
M테이블의 mem_id 오름차순으로 정렬
p.183 '좀 더 알아보기' 손코딩 실행하고 결과화면 인증하기
SELECT DISTINCT M.mem_id, M.mem_name, M.addr
FROM buy B
INNER JOIN member M
ON B.mem_id = M.mem_id
ORDER BY M.mem_id;
이 코드는 사이트에서 한 번이라도 구매한 기록이 있는 회원의 정보를 출력하는 코드이다.
개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.