我有三张表(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