[請益] sql 語法邏輯問題
我自己試著做一個選課系統
查詢課程時間時發生問題
希望能夠找出選的課
1. 自己已選的課沒有重複
2. 時間不會重疊
$sql = "
select c.course_id
from course as c
where c.course_id = '$course_add'
and c.course_id not in
(
select distinct c1.course_id
from course as c1,course_taking_association as ctawhere cta.student_id = '$input_account_no' and c1.course_id = cta.course_id
)
-------到這裡之前可以正確找別重複的---------------
-------------------------------------------------
以下為出現問題的程式碼的想法
and
(
(
與自己已有的課程同一天
and(
(
已有課程的時間開頭>=現在選課的時間結尾
and
已有課程的時間結尾>=現在選課的時間結尾
)
or
(
已有課程的時間開頭<=現在選課的時間開頭
and
已有課程的時間結尾<=現在選課的時間開頭
)
)
)
or
(
與自己已有的課程不同天
)
)
---------以下就是加入後會沒東西出現的程式碼--------------------------------
and c.course_id in
(
select distinct c2.course_id
from course as c2,course_taking_association as cta1
where cta1.student_id = '$input_account_no' and c2.course_id = cta1.course_id
and
(
(
SUBSTRING_INDEX(c2.time,SUBSTRING_INDEX(SUBSTRING_INDEX(c2.time,':',1),')',-1),1)
= '$day'
and
(
SUBSTRING_INDEX(SUBSTRING_INDEX(c2.time,':',1),')',-1)>='$end'
and
SUBSTRING_INDEX(SUBSTRING_INDEX(c2.time,':',2),'~',-1)>='$end'
)
or
(
SUBSTRING_INDEX(SUBSTRING_INDEX(c2.time,':',1),')',-1)<='$begin'
and
SUBSTRING_INDEX(SUBSTRING_INDEX(c2.time,':',2),'~',-1)<='$begin'
)
)
or
(
SUBSTRING_INDEX(c.time,SUBSTRING_INDEX(SUBSTRING_INDEX(c2.time,':',1),')',-1),1)
!= '$day'
)
)
)
";
麻煩各位給個提示吧
我弄很久,但就是出不來
感恩~
--
寂寞背後的曙光
是看著被壞男人牽著走的愛人
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.122.198.249
※ 編輯: adam0806 來自: 140.122.198.249 (05/20 13:46)
推
05/20 16:05, , 1F
05/20 16:05, 1F
→
05/20 16:05, , 2F
05/20 16:05, 2F
→
05/20 16:31, , 3F
05/20 16:31, 3F
推
05/20 16:33, , 4F
05/20 16:33, 4F
→
05/20 16:33, , 5F
05/20 16:33, 5F
→
05/20 16:34, , 6F
05/20 16:34, 6F
→
05/20 19:08, , 7F
05/20 19:08, 7F
→
05/20 19:08, , 8F
05/20 19:08, 8F
推
05/20 21:11, , 9F
05/20 21:11, 9F
→
05/20 21:11, , 10F
05/20 21:11, 10F
→
05/20 21:15, , 11F
05/20 21:15, 11F
→
05/20 21:15, , 12F
05/20 21:15, 12F
→
05/20 21:18, , 13F
05/20 21:18, 13F
推
05/23 08:27, , 14F
05/23 08:27, 14F
→
05/25 22:24, , 15F
05/25 22:24, 15F
PHP 近期熱門文章
PTT數位生活區 即時熱門文章