묻고 답해요
140만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[백문이불여일타] 데이터 분석을 위한 기초 SQL
WHERE절에서 문자를 활용해서 검색할 때요! (비교연산자나 BETWEEN, IN))
안녕하세요! 강의 너무 잘 듣고 있습니다. 저는 문자열 데이터 관련해서 세가지 질문이 있습니다. 1. WHERE 절이나 BETWEEN, IN을 활용해서 문자열 데이터를 추출하려고 할 때 문자열 전체가 아니라 'A'와 같이 문자 하나만 입력하게 되면 맨 앞 문자를 기준으로 데이터가 나오게 되는건가요? 예를 들어 다음과 같은 경우가 궁금합니다! WHERE CustomerName < ‘B’ 강의에서 '손님이름이 A로 시작하는 데이터를 모두 불러온다'라고 설명해주셨습니다. WHERE CustomerName BETWEEN 'C' AND ‘M’ WHERE 절 요약 파일에서 가져왔습니다. 직접 해보니 C와 M 사이 알파벳으로 시작하는 데이터가 추출되네요! WHERE CustomerName IN (‘B’, 'C') IN의 경우에는 이렇게도 활용이 가능한가요? 2. %나 _와 같은 와일드 카드, 한 글자 와일드 카드는 LIKE랑만 사용할 수 있나요? 3. 숫자를 활용해서 데이터를 추출하고 싶을 때 '숫자' 이렇게 넣어 문자열을 활용해도 되나요? 뒤에 해커랭크 두번째 문제를 푸는데 where id = '1661' 이렇게 넣어도 답이 맞더라구요!
-
미해결실전! 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 과정에서 막대한 곱하기 연산이 나올것 같고 애초에 잘못짠것 같습니다... 도와주세요!