2012-03-30 5 views
5

Ich habe eine MySQL-Abfrage, die Union verwendet, um mehrere Abfragen in eine Ergebnismenge zu verbinden. Die Abfrage funktioniert einwandfrei.mysql - kann keine Ansicht erstellen, die Union enthält

Wenn ich die gleiche Abfrage verwenden möchten, eine Ansicht erstellen ich dann eine Fehlermeldung erhalten:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'union select hulaminloadnumber2,deliveryid,drop1customer from localjhb where hul' at line 2 

meine Frage, die perfekt funktioniert, ist:

select hulaminloadnumber1,deliveryid,drop1customer from localjhb where hulaminloadnumber1>0 
union 
select hulaminloadnumber2,deliveryid,drop1customer from localjhb where hulaminloadnumber2>0 
union 
select hulaminloadnumber3,deliveryid,drop1customer from localjhb where hulaminloadnumber3>0 
union 
select hulaminloadnumber4,deliveryid,drop1customer from localjhb where hulaminloadnumber4>0 
union 
select hulaminloadnumber5,deliveryid,drop1customer from localjhb where hulaminloadnumber5>0 

query results

mein Abfrage zum Erstellen der Ansicht ist:

create view View_LoadvsCustomer as (
select hulaminloadnumber1,deliveryid,drop1customer from localjhb where hulaminloadnumber1>0 
union 
select hulaminloadnumber2,deliveryid,drop1customer from localjhb where hulaminloadnumber2>0 
union 
select hulaminloadnumber3,deliveryid,drop1customer from localjhb where hulaminloadnumber3>0 
union 
select hulaminloadnumber4,deliveryid,drop1customer from localjhb where hulaminloadnumber4>0 
union 
select hulaminloadnumber5,deliveryid,drop1customer from localjhb where hulaminloadnumber5>0) 

dies erzeugt die folgenden Fehler in phpMyAdmin: error message

Die Abfragen sind alle aus einer schlecht Tabelle so ausgelegt, es sollte keine Formatierung oder Sortierungsprobleme sein. Kann eine Sicht gegen eine Union-Abfrage erstellt werden?

Jeder Rat wird geschätzt.

Ein schönes Wochenende, Ryan

+1

Alle SELECT-Abfragen haben die gleiche Bedingung - 'hulaminloadnumber1> 0'. Ist es richtig? – Devart

+0

Hi @Devart, Sie haben Recht, tut mir leid, kopiert schlechten Code. wird die Frage korrigieren. Derselbe Fehler tritt jedoch mit dem richtigen Code auf. Vielen Dank – Smudger

+1

Über den Fehler - werfen Sie einen Blick auf die Antwort von Ashwin A. Es wird es reparieren. – Devart

Antwort

23

die Klammer aus Sichtdefinition entfernen. Sie haben diesen Server bug getroffen.

+0

Danke Ashwin A, funktioniert perfekt – Smudger

+2

Danke! Genau das Problem und die Lösung. Um zu helfen, in der Zukunft zu suchen, war das der Fehler, den ich bekam: 'ERROR 1064 (42000): Sie haben einen Fehler in Ihrer SQL-Syntax; Überprüfen Sie das Handbuch, das Ihrer MySQL-Serverversion entspricht, für die richtige Syntax in der Nähe von 'UNION DISTINCT SELECT ...' – dkamins