Простой селект - MySQL

Узнай цену своей работы

Формулировка задачи:

Ребята, всем привет!) Никак не могу подсутпиться к одному простому селекту, его нужно написать на SQL... Вся путаница выходит с датами и вообще немного туплю.. Есть две таблицы "Вагоны" и "Занятость вагонов". Они свзязаны по ключу-столбцу id (id вагона). Есть поля datetimestart (время начала периода занятости вагона) и datetimeend (время конца периода занятости вагона). Нужно узнать какие вагоны точно свободны в заданный период... начало-то понятно, а вот дальше наступил ступор:
SELECT id
FROM VAGONS 
WHERE id IN (SELECT id FROM VAG_ZANYATOST WHERE datetimestart  datetimeend )
Совсем мозг сломала, буду рада помощи....

Решение задачи: «Простой селект»

textual
Листинг программы
SELECT id FROM VAGONS vg
WHERE NOT EXISTS(
   SELECT 1 FROM VAG_ZANYATOST vz 
   WHERE  vz.vagon_id  = vg.id
   AND      vz.datetimestart <= '2018-01-31 23:59:59'
   AND      vz.datetimeend   >= '2018-01-01 00:00:00'
)

Оцени полезность:

6   голосов , оценка 3.5 из 5