我正在嘗試編寫一個SQL查詢,該查詢基本上採用了已經爲特定日期插入的起始值和結束值,並將它們與所有起始值和結束值進行比較,以輸出沒有「沒有衝突。換句話說,我正在編寫一個時間安排應用程序,它應該告訴一個人由於時間安排衝突而不能採取的課程。這是我現在所擁有的:SQL查詢檢查範圍
SELECT C2.COURSENUM, C2.SECTIONID
FROM TIMES T2, CLASSES C2
WHERE T2.SECTIONID = C2.SECTIONID AND
(T2.MONSTART >=
(SELECT T.MONEND
FROM DEGAUDIT D, UNDERGRAD S, TIMES T, CLASSES C
WHERE D.SID = S.SID AND S.SSN = ? AND C.SECTIONID = T.SECTIONID
AND D.SECTIONID = C.SECTIONID)
OR T2.MONEND <=
(SELECT T.MONSTART
FROM DEGAUDIT D, UNDERGRAD S, TIMES T, CLASSES C
WHERE D.SID = S.SID AND S.SSN = ? AND
C.SECTIONID = T.SECTIONID
AND D.SECTIONID = C.SECTIONID))
其中MonStart和MonEnd分別是我的開始和結束時間。現在,我遇到了麻煩,因爲這兩個子查詢都會返回多個不能用於< =符號或> =符號的值。有沒有辦法使用IN或NOT IN來完成此任務?謝謝!非常感謝您的幫助。
MySQL和/或sqlite?嘗試重寫爲沒有子查詢的連接。 – jarlh 2015-03-03 09:41:46
您的問題的目標本身並不明確。另外,你可以粘貼你的表格模式嗎? – none 2015-03-03 10:34:55