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

Listar 3 tablas con una sola consulta

Estas en el tema de Listar 3 tablas con una sola consulta en el foro de Mysql en Foros del Web. Hola amigos, tengo 3 tablas que son 3 tipos de usuario distintos y por tanto excepto el nombre y apellidos el resto de campos son ...
  #1 (permalink)  
Antiguo 11/11/2015, 11:47
Avatar de Benderzuelo  
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 223
Antigüedad: 10 años, 10 meses
Puntos: 5
Listar 3 tablas con una sola consulta

Hola amigos,

tengo 3 tablas que son 3 tipos de usuario distintos y por tanto excepto el nombre y apellidos el resto de campos son todos distintos y con distintos nombres.

Como tendría que hacer para con una sola consulta mostrar los usuarios de las 3 tablas pero ordenados por fecha de alta, o sea, que no van a salir todos los del tipo 1 y luego los del tipo 2 etc... deberán de salir en la tabla mezclados si es que las fechas de registro son distintas no se si me explico...

Qué tipo de consulta o de gestión después de la consulta tendría que hacer?, o no es posible lo que quiero hacer?
  #2 (permalink)  
Antiguo 11/11/2015, 11:54
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Listar 3 tablas con una sola consulta

Usando UNION ALL::
Código SQL:
Ver original
  1. SELECT a, b, c, d, fecha
  2. FROM tabla1
  3. WHERE a = xxxx
  4. UNION ALL
  5. SELECT a, b, c, d, fecha
  6. FROM tabla2
  7. WHERE a = xxxx
  8. UNION ALL
  9. SELECT a, b, c, d, fecha
  10. FROM tabla3
  11. WHERE a = xxxx
  12. ORDER BY fecha
__________________
¿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 11/11/2015, 12:02
Avatar de Benderzuelo  
Fecha de Ingreso: mayo-2013
Ubicación: España
Mensajes: 223
Antigüedad: 10 años, 10 meses
Puntos: 5
Respuesta: Listar 3 tablas con una sola consulta

Hola gnzsoloyo,

gracias por contestar tan rápido, pero no lo entiendo, :( los WHERE siempre hacen referencia a un campo de esa tabla que sea igual a que?, eso no lo entiendo.

Y luego cuando ya tengo los datos, como los nombres de los campos son distintos, como se en cada vuelta de la asociación que tipo de usuario estoy recibiendo para saber que campos debo de escribir?
  #4 (permalink)  
Antiguo 11/11/2015, 12:34
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Listar 3 tablas con una sola consulta

Vamos a ver, Si tienes que sacar un registro de cada tabla, en cada where irá el identificador que corresponda para obtener ESE registro.
¿Eso se entiende?
Por otro lado, si obtendrás exactamente los mismos datos (nombre, apellido, etc) de cada tabla, corresponde usar UNIONALL, que te devolverá todo en una sola tabla resultado.
Pero si los datos a obtener son diferentes en cada caso, entonces sólo podrás hacerlo haciendo tres consultas, una a cada tabla, y NUNCA en una sola, como lo que quieres.

Un UNION exige que todas las consultas devuelvan la misma cantidad de columnas, en el mismo orden y los datos encolumnados deben ser del mismo tipo.
Si tus consultas no pueden cumplir eso, entonces solo te resta hacer tres consultas y resolver tu problema por programación.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: tablascruzadas
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 14:16.