2

此查询在本地运行良好,但在主机服务器 (x10hosting.com) 上创建了确切的数据库后却不行。

SELECT (seating_capacity - (IFNULL(SUM(no_of_seats_booked),0))) AS "Seats Available",
       seating_capacity AS "Seating Capacity"
FROM tbl_showing AS h
INNER JOIN tbl_booking AS b
ON h.showing_id = b.showing_id
INNER JOIN tbl_screen AS c
ON h.screen_id = c.screen_id
WHERE h.showing_id = 9;

它所做的是检查屏幕的座位容量,汇总所有预订的座位,然后将其从座位容量中取出。如果没有座位预订返回零。

我认为我的查询是正确的,但是mysql服务器可能不支持某些高级功能。

服务器正在运行: MySQL 服务器版本:5.1.63-rel13.4 MySQL 客户端版本:4.1.22

请问有什么帮助吗?

更新:它不返回错误,而是在应该返回某个整数时返回 null。

4

4 回答 4

0

固定的。那是引擎。它正在使用myisam。更改为 ENGINE=InnoDB CHARSET=utf8。

谢谢大家的意见。

于 2012-09-19T21:56:25.367 回答
0

根据您的具体实现中设置的“挑剔”程度……您应该始终在反引号中包含表名(和字段名)。这是键盘左上角的字符(美国)...

如果不这样做,请检查您的错误日志以查看查询失败的原因。它应该返回特定的错误消息和代码。

于 2012-09-19T21:31:11.240 回答
0

由于 SUM() 是一个聚合函数,我将为查询提供一个 GROUP BY 子句。这可能是主机上查询失败的原因。

于 2012-09-19T12:10:53.203 回答
0

您是否检查过在尝试连接主机服务器时没有防火墙或安全问题?那就是我要看的地方。

于 2012-09-19T21:27:49.910 回答