Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Mysql (http://www.forosdelweb.com/f86/)
-   -   No me deja utilizar UNION con WHERE (http://www.forosdelweb.com/f86/no-deja-utilizar-union-con-where-582755/)

dieguito01 04/05/2008 09:41

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

gnzsoloyo 04/05/2008 10:36

Re: No me deja utilizar UNION con WHERE
 
¿Cuál es el mensaje que te pone?

TolaWare 04/05/2008 11:17

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 >>

dieguito01 04/05/2008 17:46

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' ?

gnzsoloyo 04/05/2008 17:52

Re: No me deja utilizar UNION con WHERE
 
Cuál es el mensaje que te pone?

dieguito01 04/05/2008 19:27

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


La zona horaria es GMT -6. Ahora son las 03:31.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.