2015-05-08 36 views
0

我有以下模式:空的結果建立關聯父子時,有沒有孩子

小時表:此表中有「不變」的數據,它永遠不會改變,因爲只有將存儲日程表能小時

hour (int) 
---- 
8 
9 
10 

預約表

hour (int) | date (text) 
-------------------------- 
10   | 25/08/2015 

在我應用程序我想只顯示可用的小時數以設置基於小時日期過濾器的新約會。例如,我可以說,對於天:

  • 25/08/2015:可用時間爲89因爲10已經採取
  • 26/08/2015:可用時間爲8910因爲沒有那個約會日期。

在開始的時候我是用這個查詢:

select h.hour 
from hours h, appointment a 
where h.hour != a.hour and a.date = 'the-date'; 

此查詢僅如果在給定的日期約會,但日期沒有任命,其餘則返回空的結果有效。我可以通過應用程序來實現這個任務,但我試圖耗盡所有數據庫的可能性。

回答

1

你可以使用一個outer join,而是一個子查詢可能會更容易理解:

SELECT hour 
FROM hours 
WHERE hour NOT IN (SELECT hour 
        FROM appointment 
        WHERE date = ?) 
+0

此查詢工作作爲一個冠軍。非常感謝! – manix

相關問題