Я пытаюсь получить список всех доступных временных интервалов на определенную дату, оставив присоединиться к моей таблице временных интервалов со своей таблицей расписания.

SELECT * 
FROM `timeslots` 
LEFT JOIN schedule ON timeslots.timeslot_id = schedule.schedule_timeslot 
LIMIT 0, 30

Это возвращает:

enter image description here

Я хочу вернуть все строки с нулевым значением для последних 3 полей. Итак, учитывая дату 2011-08-01, я хочу, чтобы были возвращены все временные интервалы, кроме 08:30 - 10:30. Я предполагаю, что нужен какой-то подзапрос, но я не знаю, как это сделать.

Любая помощь была бы признательна.

-1
PhoenixDown 28 Авг 2011 в 21:23

2 ответа

Лучший ответ

Попробуй это:

SELECT * 
FROM `timeslots` 
LEFT JOIN schedule ON timeslots.timeslot_id = schedule.schedule_timeslot
WHERE  schedule.schedule_id IS NULL or schedule.schedule_date <> '2011-08-01'
LIMIT 0, 30
2
Andrej Ludinovskov 28 Авг 2011 в 18:09

Просто добавьте ГДЕ

SELECT * 
FROM `timeslots` 
LEFT JOIN schedule ON timeslots.timeslot_id = schedule.schedule_timeslot 
WHERE schedule.schedule_timeslot IS NULL
LIMIT 0, 30
1
gbn 28 Авг 2011 в 17:26