亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

php - mysql多表查詢

瀏覽:81日期:2022-06-12 09:57:08

問題描述

有這么兩張表,大致描述一下。

表一:課程和學生的關系表rsid cid1 | 11 | 2

學號為1 的選了cid 為1 ,和2 的課程

表二:課程的具體時間表dcid day start end 1 | 2 | 14 | 16 2 | 2 | 13 | 15

課程cid 為1 在周2 14點-16點

另外還有,學生表s,sid sname。 課程表c,cid cname

這里從r和d可以看出1 這個學生選了兩門有沖突的課程。怎么用sql 語句查詢出這種沖突的記錄呢?也就是一個學生 sid 選擇了時間沖突的 cid 的記錄呢?

用連接可以查詢出 sid 對應的cid 和對應的時間 ,然后怎么判斷課程是否在時間上沖突呢?

附:這個問題的場景是一個題目集上看到的,我也同意選課的時候做判斷

問題解答

回答1:

這個很好解決:

查出這個學生報名的所有的課程

檢測這些課程的時間上是否沖突

看是不是在同一天,同一天的就比對開始和結束時間有沒有沖突,交集

不是同一天的就沒問題

補充:

不過這個問題,應該是在報名時就要規(guī)避的,就不允許產生沖突。

報名時檢測他所報名的課程時間與已經(jīng)報名的課程有沒有時間沖突,有沖突就不允許報名。

至于在時間軸上面比較兩個時間段是否有沖突其實也很好算的

php - mysql多表查詢

A - B, C - D

A - C - B 或者 A - D - B

C - A - D 或者 C - B - D

四種情況下會有交集,說明時間沖突了。

回答2:

其實,我覺得,這種有沖突的課程,在學生選課的時候就應該做判斷,不應該讓他加到數(shù)據(jù)庫當中

方法:每次在學生選課的時候,先用選擇的這個課程的時間,去查詢數(shù)據(jù)庫里是否已經(jīng)存在當前沖突的數(shù)據(jù)

例如:假如,sid = 1 的學生已經(jīng)選擇了cid = 1 的課程,然后在選擇 cid = 2 的課程時,sql如下:

select * from r left join d on r.cid = d.cid where d.day = 2 and (d.start between 13 and 15 or d.end between 13 and 15)

這樣查出來的是在當天,該時間段內是否有選中的課程存在,這樣,如果有結果,則表示你選的這個課程和你報名的課程時間上有沖突

回答3:

這種問題可以自連接解決。

select tmp1.sid,tmp1.cid,tmp2.cid from (select a.sid,a.cid,b.day,b.start,b.end from tbl1 a inner join tbl2 on a.cid=b.cid) tmp1 left join (select a.sid,a.cid,b.day,b.start,b.end from tbl1 a inner join tbl2 on a.cid=b.cid) tmp2 on tmp1.sid = tmp2.sid and tmp1.cid<>tmp2.cid and tmp1.day = tmp2.day where (tmp1.start > tmp2.start and tmp1.start < tmp2.end) or (tmp1.end > tmp2.end and tmp1.end < tmp2.end)

相關文章:
主站蜘蛛池模板: 一区二区三区久久精品 | 色黄啪啪18周岁以下禁止观看 | 古代级a毛片可以免费看 | 风间由美中文字幕亚洲一区 | 亚洲三级毛片 | 久久婷婷五色综合夜啪 | 欧美一级视频在线高清观看 | 成人国产精品2021 | 日韩色视频一区二区三区亚洲 | 一级做a爰片欧美一区 | 久久久亚洲国产精品主播 | 一级特大黄色片 | 亚洲综合一区二区三区 | 亚洲 欧美 日韩 综合 | 站长推荐精品午夜免费影院 | 欧美日韩无线在码不卡一区二区三区 | 天天爽影院一区二区在线影院 | 久久久久久91精品色婷婷 | 国产综合亚洲欧美日韩一区二区 | 国产亚洲精品久久久999小说 | 日韩精品一区二区三区不卡 | 国产亚洲一欧美一区二区三区 | 国产v欧美v日韩在线观看 | 亚洲午夜免费视频 | 日韩一级a毛片欧美一级 | 在线播放国产麻豆 | 99国内视频| 涩涩网站在线看 | 国产欧美日韩综合一区二区三区 | 日本国产免费一区不卡在线 | 91在线精品你懂的免费 | 免费三片在线观看网站 | 18到20岁女人毛片一区 | 男女啪啪免费体验区 | 国产亚洲一级精品久久 | 久久电影精品久久99久久 | 精品999视频 | 亚洲一区二区视频在线观看 | xxoo做爰猛烈动态视频网站 | 正在播放国产乱子伦视频 | 亚洲精品视频久久久 |