2017-01-11 1 views
-1

Fehler ist: Jede abgeleitete Tabelle muss einen eigenen Alias ​​haben gibt es einen Fehler?Ich habe eine SQL-Abfrage Fehler

$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)) 
    "; 

Antwort

0

Sie müssen der Tabelle, die Sie mit dem SELECT im FROM-Fall erstellt haben, einen Alias ​​geben. Um auf eine "Tabelle" zuzugreifen, die in der FROM erstellt wurde, benötigt sie einen Namen.

versuchen, etwas wie folgt aus:

$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

Vielen Dank. Seine Arbeit – Venukanth

0

Es ist verschachtelte Auswahl-Anweisung und innere Auswahl Ergebnisse werden in temporären Tabelle setzen. Sie sollten die temporäre Tabelle explizit benennen.

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

Vielen Dank..its Arbeiten – Venukanth

Verwandte Themen