此查询在本地工作正常,但在主机服务器(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。
答案 0 :(得分:0)
由于SUM()是一个聚合函数,我将为查询提供一个GROUP BY子句。这可能是查询在主机上失败的原因。
答案 1 :(得分:0)
您是否检查过在主机服务器上尝试连接时是否存在防火墙或安全问题?那是我看的地方。
答案 2 :(得分:0)
根据您对特定实现的设置的“挑剔”......您应该始终在反引号中包含表名(和字段名)。这是键盘左上角的字符(美国)......
如果不这样做,请检查错误日志以查看查询失败的原因。它应该返回一个特定的错误消息和代码。
答案 3 :(得分:0)
固定。这是引擎。它正在使用myisam。更改为ENGINE = InnoDB CHARSET = utf8。
感谢大家的意见。