mySQL存在与否存在选择

时间:2013-11-21 12:44:47

标签: php mysql sql

好的家伙我的mySQL存在很大问题。我需要选择在特定时间内获取餐厅的免费餐桌。这是我的表格:

表格:

+-------------+
| 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错误。

所以,如果你有想法,请写下来。

由于

2 个答案:

答案 0 :(得分: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子句中的列。

答案 1 :(得分:0)

您的查询中有列名start_datetime,而您的表结构将其指定为starttime

除非您进一步指定,否则如果它不是拼写错误,则看起来确实有效。