데이터베이스 개발자 질문과 답변 게시판

데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.

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

땅떨이 2017.03.27 21:36 Views : 1622

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

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

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
9786 테이블 insert문제 해결이 안되고 있습니다. 조언 부탁드립니다. [3] Ariellr 2017.03.28 1929
» 쿼리 도움부탁드립니다.. 땅떨이 2017.03.27 1622
9784 호환성 업그레이드 후 다운그레이드 버즈베잇 2017.03.27 1864
9783 데이터베이스 백업 질문 드려요 ! [2] 스터프 2017.03.25 1861
9782 바로 위의 카테고리가 동일할 경우 밑에는 노출이 안되게 하려면? [1] 팔개 2017.03.24 2119
9781 Update VS Delete+Insert!!! 뭐가 더 나을까요? [1] 김삐씨 2017.03.23 1985
9780 질문 드립니다, 고수님들께! [1] 브라미 2017.03.22 2497
9779 쿼리의 결과를 정렬한후 상위 몇개의 리스트를 다시 랜덤하게 정렬하고자 합니다. [1] AceCarrot 2017.03.22 2858
9778 DB복원 문의 지누 2017.03.22 2627
9777 열을 행으로 변환 쿼리 질문. [1] 베르나데 2017.03.22 2690
9776 sql 서버에 사용할 클라우드 서버의 메모리 크기를 얼마로 해야 할지 고민 중입니다. 무념 2017.03.22 2351
9775 PL/SQL EXCEPTION 날때 insert는 불가능한가요? 영원한초짜 2017.03.21 1625
9774 SP_Configure의 Max Server Memory [1] 대포동 2017.03.17 2224
9773 [질문]sql server 업그레이드 [2] 버즈베잇 2017.03.17 1910
9772 게시된 테이블 리스트에서 아티클 하나만 삭제하고 싶습니다. 마루무 2017.03.17 1975
9771 sum 조건 [1] 손원일 2017.03.16 2969
9770 트리거를 사용하지 않고 다른 컬럼의 데이터 동기화? [1] 팔개 2017.03.16 2789
9769 insert 자동으로 PK 값을 증가시키고 싶습니다. [3] 호짱 2017.03.14 3091
9768 데이터 자동 증가 기준 [2] 뛰어 2017.03.14 1720
9767 sql server 에이전트 시작이 되지 않습니다 ㅠㅠㅠ [4] 스터프 2017.03.14 2858





XE Login