Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Есть 2 таблицы cars & calendar
cars состоит из 2-ух полей: cardata(varchar) & class(varchar)
calendar состоит из 4-ех полей: id, car, startDate, endDate
Задача состоит в том, чтобы зная период времени, например 12/02/2012- 15/02/2012 из таблицы cars выбрать все свободные машины, которые не заняты на данный период
сам пробовал делать так:
Неактивен
Сформулируйте словами как найти машины, которые являются свободными (не ясно, что у вас хранится в данных).
Неактивен
vasya написал:
Сформулируйте словами как найти машины, которые являются свободными (не ясно, что у вас храниться в данных).
сейчас опишу подробнее
таблица cars
cardata||class
-------||-----
Audi ||A
BMW ||B
Lexus ||C
VW ||A
Toyota||B
°/////////////////////
calendar
id||car---- ||Startdate ||Enddate
1||AudI ||12/02/2012||17/02/2012
2||BMW ||16/02/2012||20/02/2012
3||Toyota ||17/02/2012||29/02/2012
//////////////////////////////////////////////
Есть период времени 12/02/2012 - 15/02/2012;
Моей целью является получить следующие машины: Lexus, VW. & BMW, Toyota(т.к. они свободны в указаный период времени)
думаю что теперь все стало яснее
Неактивен
Неактивен
vasya написал:
select cardata FROM cars LEFT JOIN
(select car from calendar where startdate >= '12/02/2012' and endDate <= '15/02/2012') t on cars.cardata = t.car
where t.car is null;
по идее все работает круто, но Audi он выбирает все равно, но она же не доступна на 12/02/2012-15/02/2012
Неактивен
Выбирает Audi, а не доступна AudI
Введите в таблице cars числовой идентификатор и связывайте по нему.
Неактивен
vasya написал:
Выбирает Audi, а не доступна AudI
Введите в таблице cars числовой идентификатор и связывайте по нему.
намекаете на то, что в таблице календарь, в ячейке car будет храниться идентификатор машины, а не название модели?
Неактивен
Да.
Неактивен
Страниц: 1