📝 기본 미션

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으로 출력한 정보

'혼공SQL' 카테고리의 다른 글

혼자 공부하는 SQL 6주차  (0) 2023.08.20
혼자 공부하는 SQL 5주차  (0) 2023.08.13
혼자 공부하는 SQL 4주차  (0) 2023.07.30
혼자 공부하는 SQL 2주차  (0) 2023.07.16
혼자 공부하는 SQL 1주차  (0) 2023.07.09

+ Recent posts