2013-12-09 40 views
-2

美好的一天,SQL從更多表中選擇

我有2個sql表。

Plaatsen 

- plid 
- x 
- y 

Reservations 

- id 
- plid 
- startdate 
- enddate 

PLID在保留有一個外鍵Plaatsen.plid

我要的是:

我得到了1個日期(例如2013-12- 09)我怎麼能找到所有不在桌上的plid's在這個變化日期的預訂?所以它不在開始日期和結束日期之間

這可能嗎?誰能幫忙?

回答

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是你控制的日期。不要害怕subquerys,SQL服務器對它有很好的優化。

+0

謝謝!成功了! – Roboneter

+0

你可以做一個查詢,我在哪裏看到所有從plaatsen plid預約之間的日期。所以不是在兩個日期之間使用1日期使用? – Roboneter