내 인생은 개발 중
[프로그래머스] 조건에 맞는 사용자 정보 조회하기 -MySQL 본문
https://school.programmers.co.kr/learn/courses/30/lessons/164670
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1안 풀이
SELECT USER_ID,
NICKNAME,
CONCAT(CITY, ' ', STREET_ADDRESS1, ' ', STREET_ADDRESS2) AS '전체주소',
CONCAT(SUBSTR(TLNO, 1, 3), '-', SUBSTR(TLNO, 4, 4), '-', SUBSTR(TLNO, 8)) AS '전화번호'
FROM USED_GOODS_USER
WHERE USER_ID IN (SELECT WRITER_ID
FROM USED_GOODS_BOARD
GROUP BY WRITER_ID
HAVING COUNT(*) >= 3)
ORDER BY USER_ID DESC
2안 풀이
SELECT USER_ID,
NICKNAME,
CONCAT(CITY, ' ', STREET_ADDRESS1, ' ', STREET_ADDRESS2) AS '전체주소',
CONCAT(SUBSTR(TLNO, 1, 3), '-', SUBSTR(TLNO, 4, 4), '-', SUBSTR(TLNO, 8)) AS '전화번호'
FROM USED_GOODS_USER A, USED_GOODS_BOARD B
WHERE A.USER_ID = B.WRITER_ID
GROUP BY WRITER_ID
HAVING COUNT(WRITER_ID) >= 3
ORDER BY USER_ID DESC
처음에는 서브쿼리를 이용해서 풀었는데 성능 측면에서 조인을 사용하는게 더 나을 것 같아 조인으로 다시 풀어보았댜!
이제 서브쿼리 쓰는 문제는 대충 감이 오고 쿼리도 쉽게 작성하는데 이렇게 조인을 사용해서 성능 측면에서 더 좋은 쿼리를 작성할 수 있으니 이런걸 생각해보는 것도 연습해봐야겠댜!!
헤헤 그래도 확실히 풀수록 익숙해지는게 느껴져서 기분 죠타 ㅎㅎㅎ
💡알게 된 점💡
SUBSTR(문자열, 시작위치, 길이)
를 사용하면 문자열을 형식대로 잘라준다.
길이를 입력하지 않으면 지정한 시작위치에서부터 끝까지 잘라준다!
'SQL' 카테고리의 다른 글
[프로그래머스] 연도별 대장균 크기의 편차 구하기 - MySQL (5) | 2024.08.07 |
---|---|
[프로그래머스] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (0) | 2024.07.16 |
[프로그래머스] 대장균의 크기에 따라 분류하기2 - MySQL (0) | 2024.07.03 |
[프로그래머스] 업그레이드 된 아이템 구하기 - MySQL (0) | 2024.06.20 |
[프로그래머스] 특정 물고기를 잡은 총 수 구하기 (0) | 2024.06.19 |
Comments