2012-03-30 16 views
5

Ho una query mysql che utilizza union per unire più query in un set di risultati. la query funziona perfettamente.mysql - impossibile creare la vista che contiene unione

Quando voglio usare la stessa query per creare una vista allora ottengo un messaggio di errore:

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 

mia domanda che funziona perfettamente è:

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

mia query per creare la vista è:

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) 

questo genera l'errore di seguito in phpMyAdmin: error message

Le query sono tutti da una tabella mal progettato in modo da non dovrebbero esserci problemi di formattazione o di regole di confronto. È possibile creare una vista rispetto a una query di unione?

Qualsiasi consiglio è apprezzato.

avere un grande fine settimana, Ryan

+1

Tutte le query SELECT hanno la stessa condizione - 'hulaminloadnumber1> 0'. È corretto? – Devart

+0

Salve @Davvio, hai ragione, scusa copia codice errato. correggerà la domanda Lo stesso errore si verifica tuttavia con il codice corretto. Grazie – Smudger

+1

Circa l'errore - dai un'occhiata alla risposta A di Ashwin. Lo risolverà. – Devart

risposta

23

rimuovere la parentesi da definizione della vista. Hai colpito questo server bug.

+0

Grazie Ashwin A, funziona perfettamente – Smudger

+2

Grazie! Esattamente il problema e la soluzione. Per aiutare qualcuno a cercare in futuro, questo era l'errore che stavo ottenendo: 'ERRORE 1064 (42000): si ha un errore nella sintassi SQL; controlla il manuale che corrisponde alla versione del tuo server MySQL per la sintassi corretta da usare vicino a 'UNION DISTINCT SELECT ... ' – dkamins

Problemi correlati