2012-03-30 11 views
5

Tengo una consulta mysql que usa la unión para unir varias consultas en un conjunto de resultados. la consulta funciona perfectamentemysql - no se puede crear una vista que contenga la unión

Cuando quiero usar la misma consulta para crear una vista que a continuación, aparece un mensaje de error:

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 

mi consulta que funciona perfectamente es:

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

mi consulta para crear la vista es:

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) 

Esto produce el error más adelante en PHPMyadmin: error message

Las consultas son todos de una mesa mal diseñado de manera no debería haber problemas de formato o intercalación. ¿Se puede crear una vista en una consulta de unión?

Cualquier consejo es apreciado.

tener un gran fin de semana, Ryan

+1

Todas las consultas SELECT tienen la misma condición - 'hulaminloadnumber1> 0'. ¿Es correcto? – Devart

+0

Hola @Devart, tienes razón, lo siento copia el código incorrecto. corregirá la pregunta. Sin embargo, el mismo error ocurre con el código correcto. Gracias – Smudger

+1

Acerca del error - eche un vistazo a la respuesta A de Ashwin. Lo arreglará. – Devart

Respuesta

23

elimine el paréntesis de la definición de la vista. Ha golpeado este servidor bug.

+0

Gracias Ashwin A, funciona perfectamente – Smudger

+2

¡Gracias! Exactamente el problema y la solución. Para ayudar a cualquiera a buscar en el futuro, este fue el error que recibí: 'ERROR 1064 (42000): tiene un error en su sintaxis SQL; revise el manual que corresponde a su versión del servidor MySQL para la sintaxis correcta para usar cerca de 'UNION DISTINCT SELECT ...' – dkamins

Cuestiones relacionadas