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

땅떨이 2017.03.27 21:36 Views : 1647

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

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

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 2023년 1월 - SQLER의 업데이트 강좌 리스트 코난(김대우) 2023.01.02 1310
9803 MSSQL 링크드서버 구성 후 트리거로 INSERT시 오류가 발생합니다. 인천코딩 2017.04.06 7666
9802 리소스 풀 에러 [1] 하아아 2017.04.06 2478
9801 초를 시분초로 나타내는 방법 문의 드립니다. [2] 아싸라비아콜롬비아 2017.04.06 3647
9800 merge사용 오류 [1] 베르나데 2017.04.04 2241
9799 트랜잭션(프로세스 ID 137)이 잠금 리소스에서 다른 프로세스와의 교착 상태가 발생하여 실행이 중지되었습니다. 트랜잭션을 다시 실행하십시오. [1] 엑삼이 2017.04.04 3705
9798 설치시 보류된 작업 삭제후 재설치 방법 슈토파이터 2017.04.04 2455
9797 인덱스 다시 작성 관련 [3] HolyGrail 2017.03.31 2351
9796 영문을 입력해도 한글 검색결과가 나오는건 어떤 원리인가요? [1] 김지 2017.03.31 2366
9795 검색 자동완성 쿼리.. 김지 2017.03.31 2151
9794 트리거 구문 작성 문의 신가이 2017.03.31 2465
9793 데이타 정렬을 하고 싶습니다 [3] 문상연 2017.03.31 2082
9792 사용자별 데이터 노출시 사용자별 갯수를 같이 구하기.. 냥냥 2017.03.30 2750
9791 간단한 쿼리질문 드리겠습니다. [1] 땅떨이 2017.03.29 1995
9790 쿼리 또 하나 질문하겠습니다! [2] 파란약 2017.03.29 2980
9789 인덱스(index)에 대하여... [4] 기타치는퐝동 2017.03.29 3014
9788 질문 드립니다 ㅠㅠ [1] 할닉네임이없다 2017.03.29 1644
9787 쿼리질문드립니다ㅠㅠ [2] 파란약 2017.03.29 2508
9786 테이블 insert문제 해결이 안되고 있습니다. 조언 부탁드립니다. [3] Ariellr 2017.03.28 1972
» 쿼리 도움부탁드립니다.. 땅떨이 2017.03.27 1647
9784 호환성 업그레이드 후 다운그레이드 버즈베잇 2017.03.27 1911





XE Login