[SQL] 조건에 맞는 사용자 정보 조회하기

NoHae·2025년 10월 30일

SQL

목록 보기
82/86

문제 출처

코딩테스트 연습> String, Date > 조건에 맞는 사용자 정보 조회하기
https://school.programmers.co.kr/learn/courses/30/lessons/164670

문제 설명


접근 방법

서브쿼리에서 USED_GOODS_BOARD 테이블에서 게시글이 3개 인 writer_id들을 가져왔다.

이 후, 가져온 writer_id와 user_id가 같은 것을 기준으로 join 후, 출력한다.

SELECT 
    user_id,
    nickname,
    CONCAT(city, ' ', street_address1, ' ', street_address2) AS 전체주소,
    CONCAT(SUBSTR(tlno,1,3), '-', SUBSTR(tlno,4,4), '-', SUBSTR(tlno,8,4)) AS 전화번호
FROM used_goods_user AS ugu
JOIN (
    SELECT writer_id
    FROM used_goods_board
    GROUP BY writer_id
    HAVING COUNT(writer_id) >= 3
) AS ugb
ON ugb.writer_id = ugu.user_id
order by user_id desc

알게된 점

주소의 경우
CITY, STREET_ADDRESS1, STREET_ADDRESS2로 나눠져 있는데, CONCAT 함수를 통해 분리된 열을 붙였다.

전화번호는
'-'을 중간에 출력해야하는데, 이는 TLNO를 전화번호 형식에 맞게 SUBSTR으로 나누고 나눠진 것들을 '-'과 함께 CONCAT으로 연결한다.

문제푼 흔적

profile
노력 해보려고 하는 사람(00년생 소프트웨어융합학과, 24년 12월 부터 백엔드 및 코테 공부 시작)

0개의 댓글