간단한 조인쿼리 작성좀 부탁드립니다. 채택완료
번개삼촌
5년 전
조회 1,503
회원 테이블 member_table
+----+----------+---------------------+---------------------------------------------+
| no | name | dayofweek | area |
+----+----------+---------------------+---------------------------------------------+
1 길동 월,화,수,목 강남구,강동구,강서구
2 영희 수,목,금,토 강남구,종로구,마포구,동대문구
3 순이 수,목,금,토,일 마포구,동대문구,노원구,양천구
4 철수 월,수,일 강동구,강북구,노원구,중랑구
오늘 업무 테이블 today_work_table
+----+----------+---------------------+
| no | today | today_area |
+----+----------+---------------------+
1 목 강남구
너무 초보적인 질문이라 죄송합니다.
나이먹고 공부하기 쉽지가 않네요 ㅠㅠ
위와 같은 테이블이 2개가 있습니다.
오늘 업무 테이블 today_work_table 을 기준으로 하여 오늘 날짜인 "목" 과 영업지역인 "강남구' 에서
영업가능한 사람을 회원 테이블 member_table에서 추려 내고자 합니다.
구하고자 하는것이
1. 목요일 강남구에서 영업 가능한 회원이 몇명인지.
2. 목요일 강남구에서 영업 가능한 회원 이름이 누구누구인지
입니다.
각 쿼리를 어찌 구성해야 할까요?
댓글을 작성하려면 로그인이 필요합니다.
답변 2개
채택된 답변
+20 포인트
5년 전
실무에서 요일이나 지역을 저렇게 한필드에 ,으로 구분해서 넣어두고 like 구문으로 필터링하면 매우 비효율적입니다. 데이터가 적을 때는 별 문제 없지만 데이터가 많아지만 쿼리 성능이 매우 낮아지거든요. 물론 몇십만 몇백만건정도까지도
큰 문데 없이 작동하긴 합니다만...^^; 질문에 충실할 답변을 하자면
일단 1번은 2번의 경과의 카운트를 구하시면 될 것 같구요.
2번 기준으로 다음과 같이 작성하시면 작동 할겁니다.
select m.name, m.dayofweek, m.area from today_work_table t join member_table m on m.dayofweek like concat ('%', t.today, '%') and m.area like concat('%', t.today_area, '%');
로그인 후 평가할 수 있습니다
답변에 대한 댓글 2개
�
번개삼촌
5년 전
많은 도움이 되었습니다. 알려주신 쿼리에 like concat 구문에서 에러가 났으나 잘 해결했습니다. 감사합니다!
k
kalcapt
5년 전
도움이 되었다니 다행이네요 :)
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인