2017-01-11 6 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

Вы должны предоставить таблицу, которую вы создали с помощью SELECT в случае FROM, псевдоним. Для доступа к «таблице», созданной в 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 * from (select * from t) should be changed to 
select * from (select * from t) as t_tmp; 
+0

Спасибо большое. – Venukanth

Смежные вопросы