2013-11-21 79 views
0

好吧,我對mySQL有很大的問題。我需要做的選擇是在特定時間獲得餐廳的免費餐桌。這裏是我的表:mySQL哪裏存在或不存在select

表:

+-------------+ 
| id | chairs| 
+-------------+ 
| 1 | 3  | 
| 2 | 5  | 
| 4 | 10 | 
| 7 | 12 | 
| 10 | 6  | 
+-------------+

和保留:

+---------------------------------+ 
| id | table_id | start_datetime  | 
+----------------|---------------------+ 
| 1 | 3  | 2013-11-27 16:15:00 | 
| 2 | 5  | 2013-11-27 19:00:00 | 
+----------------|---------------------+

我嘗試這樣的事情

SELECT * 
FROM wp_reserveit_tables,wp_reserveit_reservations 
WHERE (wp_reserveit_tables.chairs = wp_reserveit_reservations.table_id 
     AND wp_reserveit_reservations.start_datetime - INTERVAL 1 HOUR >= '2013-11-29 16:15:00' 
     AND wp_reserveit_reservations.start_datetime + INTERVAL 1 HOUR <= '2013-11-29 16:15:00')                       
OR wp_reserveit_tables.chairs <> wp_reserveit_reservations.table_id 

,但它給了我SQL錯誤。

所以請如果你有想法,請寫下來。

謝謝

+1

你正在收到什麼錯誤? –

+0

你在用兩個表格數據試着做什麼,它顯示的錯誤是什麼? – Haji

+0

查詢似乎功能正常,但您可能希望使用非棄用連接語法,儘管http://dev.mysql.com/doc/refman/5.0/en/join.html – AdrianBR

回答

0

保留表只有在有任何保留時纔有條目。因此,我們可以這樣做只是與NOT IN條款我猜,

SELECT * FROM wp_reserveit_tables WHERE chairs_id NOT IN 
(SELECT table_id FROM wp_reserveit_reservations GROUP BY table_id) 

在查詢您已與table_id列椅子欄加入了他們。所以我不確定哪一個匹配。所以請根據您的要求更改Where子句中的列。

+0

夥計們,我想特別感謝你,瑪麗。我試圖讓它工作2個星期,你在1小時或更短的時間內回答它。再一次非常感謝你。 – user3302295

+0

歡迎你的朋友:) – Mari

0

您的查詢中的列名稱爲start_datetime,而您的表結構將其指定爲starttime

除非您進一步指定,否則它看起來像是一個有效的錯誤,如果它不是拼寫錯誤。