본문 바로가기

DB/Programmers SQL Kit

[My_SQL] Lv.3 조건에 맞는 사용자 정보 조회하기

문제

 

조인으로 처리를 해도 되지만 WITH로 작성한 글이 3개 이상인 WRITER_ID를 도출하고 USER_ID가 도출한 WRITER_ID와 동일한 유저의 정보만 출력하도록 기본 구조를 잡았다.

 

유저의 CITY, STREET_ADDRESS1,2를 합쳐서 출력하는 것은 CONCAT 메소드를 이용했으며,

전화번호 같은 경우는 CONCAT과 동시에 SUBSTRING을 통해 중간 중간에 하이픈(-)을 삽입했다.

 

코드

WITH BOARD AS (
    SELECT DISTINCT WRITER_ID
    FROM USED_GOODS_BOARD
    GROUP BY WRITER_ID
    HAVING count(*) > 2
)

SELECT ugu.USER_ID, ugu.NICKNAME, 
CONCAT(ugu.CITY, ' ', ugu.STREET_ADDRESS1, ' ', ugu.STREET_ADDRESS2) AS '전체주소',
CONCAT(SUBSTRING(ugu.TLNO, 1, 3), '-', SUBSTRING(ugu.TLNO, 4, 4), '-', SUBSTRING(ugu.TLNO, 8, 4)) AS '전화번호'
FROM USED_GOODS_USER ugu, BOARD b
WHERE ugu.USER_ID = b.WRITER_ID
ORDER BY 1 DESC;