2017-01-11 4 views
-1

エラー:すべての派生テーブルは、独自のエイリアスを持っている必要があります 何か問題がありますか?私はSQLクエリを持っていますエラー

$sql = "SELECT r_name FROM(
          SELECT b.r_name,a.check_in,a.check_out 
          FROM rooms b, bookings a 
          WHERE b.r_name = a.r_name) 
        WHERE(
          check_in <= CAST($mychickIn AS DATETIME) AND check_out >= CAST($mychickIn AS DATETIME) 
          OR check_in < CAST($mycheckOut AS DATETIME) AND check_out >= CAST($mycheckOut AS DATETIME) 
          OR check_in >= CAST($mychickIn AS DATETIME) AND check_out <= CAST($mycheckOut AS DATETIME)) 
    "; 

答えて

0

FROMケースのSELECTを使用して作成したテーブルにエイリアスを付ける必要があります。 FROMで作成された「テーブル」にアクセスするには、名前が必要です。

はこのような何かを試してみてください:

$sql = "SELECT t.r_name FROM(
         SELECT b.r_name,a.check_in,a.check_out 
         FROM rooms b, bookings a 
         WHERE b.r_name = a.r_name) t 
       WHERE(
         t.check_in <= CAST($mychickIn AS DATETIME) AND t.check_out >= CAST($mychickIn AS DATETIME) 
         OR t.check_in < CAST($mycheckOut AS DATETIME) AND t.check_out >= CAST($mycheckOut AS DATETIME) 
         OR t.check_in >= CAST($mychickIn AS DATETIME) AND t.check_out <= CAST($mycheckOut AS DATETIME))"; 
+0

ありがとうございます。その働き – Venukanth

0

これは、ネストされた選択声明で、内側のSELECT結果が一時テーブルに置かれます。テンポラリテーブルの名前を明示的に指定する必要

select * from (select * from t) should be changed to 
select * from (select * from t) as t_tmp; 
+0

おかげでロット..its働く – Venukanth

関連する問題