Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] Consulta union

Estas en el tema de Consulta union en el foro de Mysql en Foros del Web. Hola, tengo una consulta pero no me funciona. Podeis echarle un vistazo por favor. Este es el error: #1222 - The used SELECT statements have ...
  #1 (permalink)  
Antiguo 21/02/2013, 03:22
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 2 meses
Puntos: 10
Consulta union

Hola, tengo una consulta pero no me funciona. Podeis echarle un vistazo por favor.



Este es el error:
#1222 - The used SELECT statements have a different number of columns
Ejecutar la(s) consulta(s) SQL en la base de datos Avisoswed: Documentación
Código MySQL:
Ver original
  1. (SELECT U.id_aviso,U.telefonos,U.name,U.apellidos,D.localidad,D.calle
  2.  
  3. FROM usuarios U,dir_usuarios D WHERE  U.id_aviso=D.id_aviso AND D.calle != ''AND  U.telefonos='9530000')
  4.  
  5.  
  6. (SELECT telefonos,telefonos3,movil,dni,name,apellidos,localidad,calle
  7.  
  8. FROM avisos WHERE telefonos='9530000' )
  9.  
  10.  
  11. (SELECT A.id_aviso,A.telefonos,A.name,A.apellidos,B.localidad,B.calle
  12.  
  13. FROM clientes A,dir_clientes B WHERE A.id_aviso=B.id_aviso AND B.calle != '' AND  A.telefonos='9530000')

Gracias
  #2 (permalink)  
Antiguo 21/02/2013, 03:52
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta union

Todas las consultas de un UNION deben obligatoriamente devolver la misma cantidad de columnas, en el mismo orden y ser del mismo tipo de dato.
Eso es de manual.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 21/02/2013, 03:54
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 2 meses
Puntos: 10
Respuesta: Consulta union

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Todas las consultas de un UNION deben obligatoriamente devolver la misma cantidad de columnas, en el mismo orden y ser del mismo tipo de dato.
Eso es de manual.
Gracias, ya me habia dando cuenta de el error y lo estaba editando justo cuando has contestado.

Código MySQL:
Ver original
  1. (SELECT U.id_aviso,U.telefonos,U.name,U.apellidos,D.localidad,D.calle
  2. FROM clientes U,dir_clientes D
  3. WHERE  U.id_aviso=D.id_aviso AND U.telefonos='$vte' AND D.calle != '')
  4. (SELECT id_aviso,telefonos,name,apellidos,localidad,calle FROM  avisos  WHERE telefonos='$vte')
  5. (SELECT U.id_aviso,U.telefonos,U.name,U.apellidos,D.localidad,D.calle
  6. FROM usuarios U,dir_usuarios D
  7. WHERE  U.id_aviso=D.id_aviso AND U.telefonos='$vte' AND D.calle != '';

Un saludo

Última edición por gnzsoloyo; 21/02/2013 a las 04:56 Razón: Codigo PHP
  #4 (permalink)  
Antiguo 21/02/2013, 04:17
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 2 meses
Puntos: 10
Respuesta: Consulta union

Estoy intentando meter otro filtro para buscar por calle pero no me sale:

Código MySQL:
Ver original
  1. (SELECT U.id_aviso,U.telefonos,U.name,U.apellidos,D.localidad,D.calle
  2. FROM clientes U,dir_clientes D
  3. WHERE  U.id_aviso=D.id_aviso AND if ( ! empty($vte)) {U.telefonos='$vte'} AND if ( ! empty($calle)) {D.calle='$calle'}   AND D.calle != '')
  4. (SELECT id_aviso,telefonos,name,apellidos,localidad,calle FROM  avisos  WHERE if ( ! empty($vte)) {telefonos='$vte'} AND if ( ! empty($calle)) {calle='$calle'})
  5. (SELECT U.id_aviso,U.telefonos,U.name,U.apellidos,D.localidad,D.calle
  6. FROM usuarios U,dir_usuarios D
  7. WHERE  U.id_aviso=D.id_aviso AND if ( ! empty($vte)) {U.telefonos='$vte'} AND if ( ! empty($calle)) {D.calle='$calle'} AND D.calle != '');

Última edición por gnzsoloyo; 21/02/2013 a las 04:57 Razón: Codigo PHP
  #5 (permalink)  
Antiguo 21/02/2013, 04:59
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Consulta union

No te va a salir porque estás metiendo funciones de PHP dentro del SQL.
Estructura mejor la sentencia y vuelve a probar.
Otra cosa que debes recordar es que no se pueden usar cierto tipo de funciones dentro del WHERE.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 21/02/2013, 10:03
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 2 meses
Puntos: 10
Respuesta: Consulta union

Cita:
Iniciado por gnzsoloyo Ver Mensaje
No te va a salir porque estás metiendo funciones de PHP dentro del SQL.
Estructura mejor la sentencia y vuelve a probar.
Otra cosa que debes recordar es que no se pueden usar cierto tipo de funciones dentro del WHERE.
Ok, gracias.

Etiquetas: select, sql, union
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:11.