inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

WHERE절에서 문자를 활용해서 검색할 때요! (비교연산자나 BETWEEN, IN))

미해결

[백문이불여일타] 데이터 분석을 위한 기초 SQL

안녕하세요! 강의 너무 잘 듣고 있습니다. 저는 문자열 데이터 관련해서 세가지 질문이 있습니다. 1. WHERE 절이나 BETWEEN, IN을 활용해서 문자열 데이터를 추출하려고 할 때 문자열 전체가 아니라 'A'와 같이 문자 하나만 입력하게 되면 맨 앞 문자를 기준으로 데이터가 나오게 되는건가요? 예를 들어 다음과 같은 경우가 궁금합니다! WHERE CustomerName < &lsquo;B&rsquo; 강의에서 '손님이름이 A로 시작하는 데이터를 모두 불러온다'라고 설명해주셨습니다. WHERE CustomerName BETWEEN 'C' AND &lsquo;M&rsquo; WHERE 절 요약 파일에서 가져왔습니다. 직접 해보니 C와 M 사이 알파벳으로 시작하는 데이터가 추출되네요! WHERE CustomerName IN (&lsquo;B&rsquo;, 'C') IN의 경우에는 이렇게도 활용이 가능한가요? 2. %나 _와 같은 와일드 카드, 한 글자 와일드 카드는 LIKE랑만 사용할 수 있나요? 3. 숫자를 활용해서 데이터를 추출하고 싶을 때 '숫자' 이렇게 넣어 문자열을 활용해도 되나요? 뒤에 해커랭크 두번째 문제를 푸는데 where id = '1661' 이렇게 넣어도 답이 맞더라구요!

  • 문자열데이터
  • sql
  • 문자열
  • where
이채홍 댓글 1 좋아요 0 조회수 920

querydsl 작성과 최적화에 문제가 있습니다! 도와주세요!

미해결

실전! Querydsl

해당 유저(to_user)가 팔로우한 유저(from_user)가 작성한 모든 게시글(playlist)을 가져오는 쿼리를 작성하고 싶습니다. 정확히 말씀드리자면 작성은 하고 제대로 가져는 오는데 오답같습니다... public List<Playlist> findFolloweesMakePlaylist (Long userSeq){ return jpaQueryFactory .selectFrom( playlist ) .join( userLikes ).fetchJoin() .on( playlist . user . userSeq .eq( userLikes . toUser . userSeq )) .where( userLikes . fromUser . userSeq .eq(userSeq)) .fetch() ; } 제가 작성한 코드는 위와 같습니다. 나의 userId인 userSeq를 받아서 게시글 작성자 ID와 내가 좋아요 한 사람ID가 같은 부분을 on절로 join 하고, 플레이리스트 작성한 사람에게 좋아요를 한 사람이 저인지 where절로 체크하였습니다. 테스트 돌리면 답은 나오지만 team member처럼 직접적으로 이어져있지 않으니 join 과정에서 막대한 곱하기 연산이 나올것 같고 애초에 잘못짠것 같습니다... 도와주세요!

  • querydsl
  • java
  • 쿼리최적화
  • on
  • JPA
  • where
ghlim909 댓글 1 좋아요 0 조회수 332

인기 태그

인프런 TOP Writers

주간 인기글