쿼리 도움부탁드립니다..

땅떨이 2017.03.27 21:36 Views : 1634

아직 쿼리가 미숙해서 간단해보이는것도 마냥 어렵기만 하고 너무 답답하네요...

고수분들이 많다고 들어 글하나 올립니다.

mysql입니다.


*lecture*
+------------+-------------------+----------------+--------------+---------------+-------------------+--------------+
|lecture_id| lecture_name |lecture_credit|lecture_type|lecture_point|lecture_professor| lecture_info |
+------------+-------------------+----------------+--------------+---------------+-------------------+--------------+
| 1 | 컴퓨터개론1 | 3 | internet | 0 | 김교수 | 전공 |
| 2 | 컴퓨터개론2 | 3 | internet | 0 | 김교수 | 전공 |
| 3 | 컴퓨터개론3 | 3 | internet | 0 | 김교수 | 전공 |
| 4 | 컴퓨터개론4 | 3 | internet | 0 | 김교수 | 전공 |
| 5 | 컴퓨터개론5 | 3 | internet | 0 | 김교수 | 전공 |
| 6 | 컴퓨터개론6 | 3 | internet | 0 | 김교수 | 전공 |
| 7 | 컴퓨터개론7 | 3 | internet | 0 | 김교수 | 전공 |
| 8 | 컴퓨터개론8 | 3 | internet | 0 | 김교수 | 전공 |
| 9 | 컴퓨터개론9 | 3 | internet | 0 | 김교수 | 전공 |
| 10 | 컴퓨터개론10 | 3 | internet | 0 | 김교수 | 전공 |
+------------+-------------------+----------------+--------------+---------------+-------------------+--------------+


*timetable*

+--------------+------------+-------------+------------+----------+
| timetable_id | lecture_id | lecture_day | start_time | end_time |
+--------------+------------+-------------+------------+----------+
| 11 | 1 | 월 | 09:00:00 | 10:30:00 |
| 12 | 1 | 수 | 10:30:00 | 12:00:00 |
| 13 | 2 | 화 | 10:30:00 | 12:00:00 |
| 14 | 2 | 목 | 09:00:00 | 10:30:00 |
| 15 | 3 | 금 | 09:00:00 | 12:00:00 |
| 16 | 4 | 금 | 12:00:00 | 15:00:00 |
| 17 | 5 | 월 | 12:00:00 | 13:00:00 |
| 18 | 5 | 수 | 13:00:00 | 14:00:00 |
| 19 | 6 | 화 | 15:00:00 | 16:30:00 |
| 20 | 6 | 목 | 16:30:00 | 18:00:00 |
| 21 | 7 | 목 | 15:00:00 | 18:00:00 |
| 22 | 8 | 화 | 15:00:00 | 18:00:00 |
| 23 | 9 | 화 | 12:00:00 | 18:00:00 |
| 24 | 10 | 월 | 09:00:00 | 12:00:00 |
+--------------+------------+-------------+------------+----------+


*user_timetable*
+-------------------+------------+----------+
| user_timetable_id | lecture_id | user_id  |
+-------------------+------------+----------+
| 4 | 1 | 12345678 |
| 5 | 5 | 12345678 |
| 6 | 9 | 12345678 |
+-------------------+------------+----------+


lecture는 모든강의에 대한 정보입니다.

timetable는 모든강의에 대한 시간표입니다.

user_timetable은 유저가 선택한 강의 입니다.


여기서 유저가 선택한 강의중 시간표가 겹치지 않는 강의를 출력하는 쿼리를 짜고있습니다.

BETWEEN을 쓰려고하니 잘안되고.. 서브쿼리로 제가선택한시간과 모든강의를 비교하자니

1row가 아니라서 출력을 할 수가 없습니다..

어떻게 짜야 할까요?


강의시간을 start_time과end_time로 나누지 않고 time으로 해서 1a,1b,2a이런식으로 30분단위로 끊어서

해결해야 할까요??


현재

select *
from timetable tt
where  (

      select count(*)
      from user_timetable u, timetable t
      where u.lecture_id = t.lecture_id
        and tt.lecture_day = t.lecture_day
        and ((tt.start_time <= t.start_time) and (tt.end_time <= t.start_time) or(tt.start_time >= t.end_time) and (tt.end_time >= t.end_time))) = 0 ;


이렇게 전체강의중 시작시간과 끝시간이 유저가 선택한 강의의 시작시간보다 작으면 유저가 선택한 강의의 이전의 수강가능한 강의

마찬가지로 시작시간과 끝시간이 유저가 선택한 강의의 end_time보다 크면 유저가 선택한 강의 이후의 수강가능한 강의로 출력하려는데...


서브쿼리쪽에서 tt.lecture_day = t.lecture_day로 하니 요일마다 비교를해서 조금 문제가 생기는 것 같습니다..

조언을 구합니다


No. Subject Author Date Views
Notice [IT재직자] 개강임박!! 올해 마지막 무료 및 국비지원 교육 (JAVA, 리눅스 기초/고급 , CCNA, CCIE 등) 코난(김대우) 2022.12.02 624
Notice 2022년 11월 SQLER의 강좌 업데이트 리스트 코난(김대우) 2022.12.01 36
9798 설치시 보류된 작업 삭제후 재설치 방법 슈토파이터 2017.04.04 2441
9797 인덱스 다시 작성 관련 [3] HolyGrail 2017.03.31 2336
9796 영문을 입력해도 한글 검색결과가 나오는건 어떤 원리인가요? [1] 김지 2017.03.31 2354
9795 검색 자동완성 쿼리.. 김지 2017.03.31 2135
9794 트리거 구문 작성 문의 신가이 2017.03.31 2455
9793 데이타 정렬을 하고 싶습니다 [3] 문상연 2017.03.31 2074
9792 사용자별 데이터 노출시 사용자별 갯수를 같이 구하기.. 냥냥 2017.03.30 2745
9791 간단한 쿼리질문 드리겠습니다. [1] 땅떨이 2017.03.29 1984
9790 쿼리 또 하나 질문하겠습니다! [2] 파란약 2017.03.29 2966
9789 인덱스(index)에 대하여... [4] 기타치는퐝동 2017.03.29 3000
9788 질문 드립니다 ㅠㅠ [1] 할닉네임이없다 2017.03.29 1625
9787 쿼리질문드립니다ㅠㅠ [2] 파란약 2017.03.29 2491
9786 테이블 insert문제 해결이 안되고 있습니다. 조언 부탁드립니다. [3] Ariellr 2017.03.28 1956
» 쿼리 도움부탁드립니다.. 땅떨이 2017.03.27 1634
9784 호환성 업그레이드 후 다운그레이드 버즈베잇 2017.03.27 1888
9783 데이터베이스 백업 질문 드려요 ! [2] 스터프 2017.03.25 1888
9782 바로 위의 카테고리가 동일할 경우 밑에는 노출이 안되게 하려면? [1] 팔개 2017.03.24 2133
9781 Update VS Delete+Insert!!! 뭐가 더 나을까요? [1] 김삐씨 2017.03.23 2357
9780 질문 드립니다, 고수님들께! [1] 브라미 2017.03.22 2513
9779 쿼리의 결과를 정렬한후 상위 몇개의 리스트를 다시 랜덤하게 정렬하고자 합니다. [1] AceCarrot 2017.03.22 2877





XE Login

테스트 팝업
Close