문제 

https://school.programmers.co.kr/learn/courses/30/lessons/164670

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

문제 접근 방식

게시글을 3개 이상 올린 작성자를 찾아서 닉네임, 주소, 연락처를 SELECT 해야한다. 이때, 게시글의 정보와 회원의 정보가 분리되어 있기 때문에 JOIN을 활용해야하며, 주소 및 연락처를 정해진 형식에 맞춰 변형해서 출력해야한다.

1. 게시글을 3개 이상 작성한 회원 조회 -> JOIN 후 GROUP BY, HAVING을 사용
>> JOIN
SELECT ~ FROM user
INNER JOIN board
ON user_id = writer_id

>> GROUP BY, HAVING
GROUP BY user_id
HAVING COUNT(user_id)>=3


2. 주소 및 연락처 출력 변환 -> CONCAT 및 SUBSTR 명령어 사용
>> CONCAT (문자열1, 문자열2, ..., )
>> SUBSTRING(번호,1,3)

 

코드

SELECT user_id,nickname,
CONCAT(city," ",street_address1," ",street_address2) as 전체주소,
CONCAT(SUBSTR(TLNO,1,3),'-',SUBSTR(TLNO,4,4),'-',SUBSTR(TLNO,8,4))
FROM used_goods_user as user
INNER JOIN used_goods_board as board
ON user_id = writer_id
GROUP BY user_id
HAVING COUNT(user_id)>=3
ORDER BY user_id DESC;

 

 

회고

CONCAT 과 SUBSTR 에 대해 알게되었다.
문자열 합치기 = CONCAT(문자열1, 문자열2,...,)
문자열 슬라이스 = SUBSTR( 문자열, 시작위치, 철자 개수)

 

 

+ Recent posts