我有三張表(doctor,clinic_doctor_timings,hosptial_doctor_timings)。時間表中包含醫生表的ID作爲外鍵,還存儲醫生的時間和時間。現在我需要選擇在給定時間內去往診所或醫院的醫生ID,即從和到。將兩個表與mysql中的一組條件結合起來
我寫了一個查詢,可用於診所或醫院,但不是兩者兼而有之。
SELECT
DISTINCT
SQL_CALC_FOUND_ROWS
`doctor`.`id`,
`doctor`.`name`
FROM
`doctor`
JOIN clinic_doctor_timings AS cl
ON cl.doctor_id = doctor.id
WHERE
TIME_FORMAT(`cl`.`from`, %h:%i %p) >= '05:00 AM'
AND TIME_FORMAT(`cl`.`to`, %h:%i %p) >= '10:00 PM'
上述查詢工作正常,但之後,我想無論是clinic_doctor_timings和hospital_doctor_timings表結合我沒有得到結果我的期望。
.........
JOIN clinic_doctor_timings AS cl
ON cl.doctor_id = doctor.id
JOIN hospital_doctor_timings AS hs
ON hs.doctor_id = doctor.id
WHERE
(TIME_FORMAT(`cl`.`from`, %h:%i %p) >= '05:00 AM'
AND TIME_FORMAT(`cl`.`to`, %h:%i %p) <= '10:00 PM')
XOR
(TIME_FORMAT(`hs`.`from`, %h:%i %p) >= '05:00 AM'
AND TIME_FORMAT(`hs`.`to`, %h:%i %p) <= '10:00 PM')
我需要爲診所和醫院提供診所和醫院以外的給定時間。
我還是不明白你想要什麼.... – mjb 2013-05-02 12:33:21