SELECT T1.USER_ID, T1.NICKNAME, CONCAT(T1.CITY, " ", T1.STREET_ADDRESS1, " ", T1.STREET_ADDRESS2) "전체주소", CONCAT(LEFT(T1.TLNO, 3), "-", MID(T1.TLNO, 4, 4), "-", RIGHT(T1.TLNO, 4)) "전화번호"
FROM USED_GOODS_USER T1
INNER JOIN
(SELECT WRITER_ID, COUNT(1) CNT
FROM USED_GOODS_BOARD
GROUP BY WRITER_ID
HAVING CNT >= 3
) T2
ON T1.USER_ID = T2.WRITER_ID
ORDER BY T1.USER_ID DESC
;
문제:
USED_GOODS_BOARD 와 USED_GOODS_USER 테이블에서 중고 거래 게시물을 3건 이상 등록한 사용자의 사용자 ID, 닉네임, 전체주소, 전화번호를 조회
- "전체주소"는 시, 도로명 주소, 상세 주소가 함께 출력
- "전화번호"는 xxx-xxxx-xxxx 같은 형태로 출력
- 결과는 회원 ID 를 기준으로 내림차순 정렬
해결방법:
1. USED_GOODS_BOARD 테이블에서 작성자별 게시물 건수를 3건 이상에 대한 조건을 설정하여 조회
2. 1 에서 조회한 테이블을 USER 테이블과 INNER JOIN
3. "전체주소"와 "전화번호"는 CONCAT() 을 사용하여 결합
4. "전화번호"는 기존 전화번호 값에서 LEFT, MID, RIGHT 함수를 사용하고 하이픈을 추가
예시코드:
'[SQL] 연습' 카테고리의 다른 글
[MySQL] 프로그래머스 조건에 부합하는 중고거래 상태 조회하기 (0) | 2024.10.27 |
---|---|
[MySQL] 프로그래머스 부서별 평균 연봉 조회하기 (0) | 2024.10.26 |
[MySQL] 프로그래머스 잡은 물고기 중 가장 큰 물고기의 길이 구하기 (1) | 2024.10.20 |
[MySQL] 프로그래머스 물고기 종류별 잡은 수 구하기 (0) | 2024.10.19 |
[MySQL] 프로그래머스 즐겨찾기가 가장 많은 식당 정보 조회하기 (0) | 2024.10.16 |