Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > Mysql

Respuesta
 
Herramientas Desplegado
Antiguo 04-may-2008, 09:41   #1 (permalink)
dieguito01 ha deshabilitado el karma
 
Fecha de Ingreso: abril-2007
Mensajes: 76
No me deja utilizar UNION con WHERE

Que tal gente, quiero hacer una union de 2 tablas y ademas que solo muestre las tablas que contienen en un campo una palabra

Código:
(SELECT id, titulo, idioma, fecha, hora, categoria FROM tabla1) UNION ALL
(SELECT id, titulo, idioma, fecha, hora, categoria FROM tabla2) UNION ALL
WHERE idioma='spanish' ORDER BY fecha DESC LIMIT 50
Cual puede ser el error.

Gracias
dieguito01 está desconectado   Responder Citando
Antiguo 04-may-2008, 10:36   #2 (permalink)
gnzsoloyo está en el buen camino
 
Avatar de gnzsoloyo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 587
Re: No me deja utilizar UNION con WHERE

¿Cuál es el mensaje que te pone?
__________________
¿Quién de sus aciertos aprende?, si yo aprendo de mis errores constantemente...
gnzsoloyo está desconectado   Responder Citando
Antiguo 04-may-2008, 11:17   #3 (permalink)
Colaborador
TolaWare tiene algunos puntos positivos de karma
 
Avatar de TolaWare
 
Fecha de Ingreso: julio-2005
Mensajes: 4.252
Enviar un mensaje por MSN a TolaWare
Re: No me deja utilizar UNION con WHERE

Me da la impresión que el segundo UNION ALL esta de mas.

La sintaxis del UNION es :

SELECT ...
UNION [ALL | DISTINCT]
SELECT ...
[UNION [ALL | DISTINCT]
SELECT ...]

Además del UNION extra, deberías especificar a que SELECT le estas aplicando el WHERE (los SELECT a las tablas individuales son parte del operador UNION).

Deberías especificarla así:

SELECT * FROM (
(SELECT id, titulo, idioma, fecha, hora, categoria FROM tabla1) UNION ALL
(SELECT id, titulo, idioma, fecha, hora, categoria FROM tabla2)

) WHERE idioma='spanish' ORDER BY fecha DESC LIMIT 50;

<< Con colores marqué la anidación de consultas >>

Última edición por TolaWare; 04-may-2008 a las 11:31.
TolaWare está desconectado   Responder Citando
Antiguo 04-may-2008, 17:46   #4 (permalink)
dieguito01 ha deshabilitado el karma
 
Fecha de Ingreso: abril-2007
Mensajes: 76
Re: No me deja utilizar UNION con WHERE

Gracias por responder!, encontré una solucion especificando a cada uno el WHERE

Código:
(SELECT * FROM categoriavideos WHERE idioma='ES')
UNION ALL 
(SELECT * FROM categoriamusica WHERE idioma='ES')
UNION ALL 			 
(SELECT * FROM categorianoticias WHERE idioma='ES')
ORDER BY fecha DESC, hora DESC LIMIT 20"
Al campo idioma lo tengo como FULLText, esta bien con un WHERE idioma='ES' ?
dieguito01 está desconectado   Responder Citando
Antiguo 04-may-2008, 17:52   #5 (permalink)
gnzsoloyo está en el buen camino
 
Avatar de gnzsoloyo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 587
Re: No me deja utilizar UNION con WHERE

Cuál es el mensaje que te pone?
__________________
¿Quién de sus aciertos aprende?, si yo aprendo de mis errores constantemente...
gnzsoloyo está desconectado   Responder Citando
Antiguo 04-may-2008, 19:27   #6 (permalink)
dieguito01 ha deshabilitado el karma
 
Fecha de Ingreso: abril-2007
Mensajes: 76
Re: No me deja utilizar UNION con WHERE

Con mi ultimo codigo ninguo, pero antes era un error sobre la funcion query, lo que pasa que utilizo PHP entre medio, entonces no me dice un error de mysql, sino que esta mal planteada la sintaxis desde PHP.

Igual lo ejecute y me dice esto.

MySQL said: Documentation
#1064 - 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 'WHERE idioma='spanish' ORDER BY fecha DESC LIMIT 50' at line 3
dieguito01 está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 01:25.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93