2013-12-09 10 views
-2

Добрый день,SQL select from more tables

У меня 2 таблицы sql.

Plaatsen 

- plid 
- x 
- y 

и

Reservations 

- id 
- plid 
- startdate 
- enddate 

plid в оговорках имеет внешний ключ Plaatsen.plid

Что я хочу:

Я получил 1 дату (например, 2013-12- 09) как я могу найти все плиты, которые не находятся в таблице. Оговорки на эту переменную дату? так что это не между начальным и конечным датами

Возможно ли это? может ли кто-нибудь помочь?

ответ

0
SELECT P.Plid FROM Plaatsen p 
LEFT JOIN Reservations R ON P.Plid=R.Plid 
WHERE '2013-12-09' BETWEEN startdate AND enddate AND R.id IS NULL 
+0

Это не вернет строки. Я оставляю это как упражнение для читателя, чтобы понять, почему. –

1

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

SELECT * FROM Plaatsen WHERE plid NOT IN (SELECT plid from Reservations where :date BETWEEN startdate AND enddate) 

Где :date является дату контроля. Не бойтесь подзапросов, SQL-серверы имеют хорошие оптимизации для него.

+0

Спасибо! Работал! – Roboneter

+0

вы можете сделать запрос, где я вижу все plid из plaatsen, где бронирование находится между датами. так что вместо 1 использования даты между двумя датами? – Roboneter