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

SUM()は集計関数なので、GROUPBY句を使用してクエリを提供します。ホストでクエリが失敗するのはそのためかもしれません。

于 2012-09-19T12:10:53.203 に答える
0

ホストサーバーに接続しようとしたときにファイアウォールやセキュリティの問題がないことを確認しましたか?それが私が見るところです。

于 2012-09-19T21:27:49.910 に答える
0

特定の実装での設定の「選択のしやすさ」に応じて、バックティック内に常にテーブル名(およびフィールド名)を含める必要があります。これは、キーボードの左上にある文字です(米国)...

これでうまくいかない場合は、エラーログをチェックして、クエリが失敗する理由を確認してください。特定のエラーメッセージとコードを返す必要があります。

于 2012-09-19T21:31:11.240 に答える
0

修理済み。エンジンでした。myisamを使用していました。ENGINE = InnoDB CHARSET=utf8に変更されました。

ご意見ありがとうございました。

于 2012-09-19T21:56:25.367 に答える