国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

php - mysql多表查詢

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

問(wèn)題描述

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

表一:課程和學(xué)生的關(guān)系表rsid cid1 | 11 | 2

學(xué)號(hào)為1 的選了cid 為1 ,和2 的課程

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

課程cid 為1 在周2 14點(diǎn)-16點(diǎn)

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

這里從r和d可以看出1 這個(gè)學(xué)生選了兩門(mén)有沖突的課程。怎么用sql 語(yǔ)句查詢出這種沖突的記錄呢?也就是一個(gè)學(xué)生 sid 選擇了時(shí)間沖突的 cid 的記錄呢?

用連接可以查詢出 sid 對(duì)應(yīng)的cid 和對(duì)應(yīng)的時(shí)間 ,然后怎么判斷課程是否在時(shí)間上沖突呢?

附:這個(gè)問(wèn)題的場(chǎng)景是一個(gè)題目集上看到的,我也同意選課的時(shí)候做判斷

問(wèn)題解答

回答1:

這個(gè)很好解決:

查出這個(gè)學(xué)生報(bào)名的所有的課程

檢測(cè)這些課程的時(shí)間上是否沖突

看是不是在同一天,同一天的就比對(duì)開(kāi)始和結(jié)束時(shí)間有沒(méi)有沖突,交集

不是同一天的就沒(méi)問(wèn)題

補(bǔ)充:

不過(guò)這個(gè)問(wèn)題,應(yīng)該是在報(bào)名時(shí)就要規(guī)避的,就不允許產(chǎn)生沖突。

報(bào)名時(shí)檢測(cè)他所報(bào)名的課程時(shí)間與已經(jīng)報(bào)名的課程有沒(méi)有時(shí)間沖突,有沖突就不允許報(bào)名。

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

php - mysql多表查詢

A - B, C - D

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

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

四種情況下會(huì)有交集,說(shuō)明時(shí)間沖突了。

回答2:

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

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

例如:假如,sid = 1 的學(xué)生已經(jīng)選擇了cid = 1 的課程,然后在選擇 cid = 2 的課程時(shí),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)

這樣查出來(lái)的是在當(dāng)天,該時(shí)間段內(nèi)是否有選中的課程存在,這樣,如果有結(jié)果,則表示你選的這個(gè)課程和你報(bào)名的課程時(shí)間上有沖突

回答3:

這種問(wèn)題可以自連接解決。

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)

相關(guān)文章:
主站蜘蛛池模板: 亚洲国产日韩欧美综合久久 | 91高端极品外围在线观看 | 国产精品一区二区三区四区五区 | 中文在线日韩 | 91福利国产在线观看香蕉 | 久久成人精品视频 | 亚洲欧美卡通成人制服动漫 | 亚洲在成人网在线看 | 久久精品视频8 | 涩涩网站| 可以看毛片的网站 | 免费黄色三级网站 | 亚欧成人毛片一区二区三区四区 | 国产综合久久一区二区三区 | 国产一区二区三区亚洲综合 | 99re思思| 久久久免费精品视频 | 伊人青| 精品一区二区三区四区在线 | 94欧美setu| 日本免费高清视频二区 | 大学生一级一片第一次欧美 | 久色tv| 伊人久久在线 | 国内成人自拍视频 | 手机看成人片 | 免费v片在线看 | 亚洲a级片在线观看 | 美女黄网站 | 日韩在线视精品在亚洲 | 日本爽快片100色毛片 | 亚洲精品影院一区二区 | 台湾三级香港三级在线中文 | 男女扒开双腿猛进入免费网站 | 亚洲精品国产一区二区在线 | 日本三级2021最新理论在线观看 | swag国产精品一区二区 | 国产欧美日韩视频免费61794 | 成人毛片免费观看视频大全 | 一区二区日韩欧美 | 免费视频毛片 |