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

Consulta a varias tablas

Estas en el tema de Consulta a varias tablas en el foro de Mysql en Foros del Web. Necesito hacer una consulta a varias tablas y que me muestre la informacion, el problema es que hay varios campos que no son comunes, y ...
  #1 (permalink)  
Antiguo 05/04/2006, 04:26
Avatar de oskarL  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 499
Antigüedad: 18 años, 11 meses
Puntos: 2
Consulta a varias tablas

Necesito hacer una consulta a varias tablas y que me muestre la informacion, el problema es que hay varios campos que no son comunes, y tengo que mostrar tambien esos datos. No hay campos que relacionen una tabla con la otra.

El ejemplo:

TABLA PERSONAS:
nombre, apellidos, direccion, telefono

TABLA ORGANIZACIONES:
nombre (comercial), razon (social), direccion, telefono


Como he dicho, me gustaria que en la misma consulta aparecieran todos los datos, incluso los apellidos y la razon, que no son comunes...

Se puede hacer? Gracias
__________________
Solo hay 10 clases de personas, las que saben binario y las que no.
  #2 (permalink)  
Antiguo 05/04/2006, 04:53
 
Fecha de Ingreso: agosto-2005
Mensajes: 142
Antigüedad: 18 años, 7 meses
Puntos: 0
Bueno, si lo que quieres hacer (supongo) es mostrar todas las personas que pertenecen a la empresa, no te queda mas remedio que relacionar las tablas, por ello es un sistema de base de datos relacional.

Tendrias que incorporar en la tabla personas el Identificador de la empresa a la que pertencen, si no yo no eo la manera que la BBDD pueda deducir que personas pertenecen a una empresa deerminada.

Siento no ser de mas ayuda.
  #3 (permalink)  
Antiguo 05/04/2006, 06:00
Avatar de oskarL  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 499
Antigüedad: 18 años, 11 meses
Puntos: 2
No, no son personas que pertenecen a una organizacion, son personas por un lado, y organizaciones por otro.

No se si se podria sacar un listado como este:

Código:
Nombre                Apellidos    Razon                     Direccion
Ana                   Gomez        (null)                    c/ Gertru, 18
Alcoholicos Anonimos (null)        Alcoholicos Anonimos SA   c/ Lobo, sn

Es lo que me gustaria conseguir, o algo parecido
__________________
Solo hay 10 clases de personas, las que saben binario y las que no.
  #4 (permalink)  
Antiguo 27/04/2006, 08:27
Avatar de oskarL  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 499
Antigüedad: 18 años, 11 meses
Puntos: 2
A nadie se le ocurre como hacerlo? o simplemente no se puede hacer?

Gracias
__________________
Solo hay 10 clases de personas, las que saben binario y las que no.
  #5 (permalink)  
Antiguo 27/04/2006, 08:41
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
Si no existe relación entre ambas tablas y haces la consulta de tales tablas, por cada persona te va a salir todas las direcciones.
Todo depende de como quieras listar tu consulta. Quieres que salgan todas las personas y las empresas en tu consulta sin que esto quiera decir que en una fila determinada, la persona pertenezca y trabaje o viva en la dirección que visualiza en la misma fila???.
Seria bueno que especifiques más lo que deseas...
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #6 (permalink)  
Antiguo 27/04/2006, 08:56
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 18 años
Puntos: 2
¿Una union no te sirve?

SELECT * FROM PERSONAS UNION SELECT * FROM ORGANIZACIONES

Saludos.
  #7 (permalink)  
Antiguo 28/04/2006, 02:20
Avatar de oskarL  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 499
Antigüedad: 18 años, 11 meses
Puntos: 2
Una UNION no me sirve, porque me saca esto:

Código:
Nombre                Apellidos                        Direccion
Ana                   Gomez                            c/ Gertru, 18
Alcoholicos Anonimos  Alcoholicos Anonimos SA          c/ Lobo, sn
Siendo Ana una persona, y Alcoholicos Anonimos una organizacion... (se entiende, no? :p jeje)

Alcoholicos Anonimos, no tiene "apellidos", y es como sale reflejado.

Al hacer un UNION, coge los campos del primer select, y los intenta acoplar a los campos del segudo, y por eso "junta" apellidos y razon, y eso no es lo quiero sacar


Lo que quiero hacer es unir dos tablas, que tengan diferentes campos, y que en el resultado aparezcan todos los campos de las dos tablas. Si una fila no tiene informacion sobre un campo concreto (porque ese campo es de la otra tabla), que aparezca null o vacio. A ver si con el ejemplo de abajo se entiende mejor




Repito: LAS TABLAS NO TIENEN ninguna relacion entre si. Igual el primer ejemplo no esta bien para entender esto...

Pensad que las tablas son de "Frutas" y "Coches", que dificilmente se pueden relacionar entre si, jeje.

Imaginad que la tabla FRUTAS tiene los campos: nombre, color, arbol

y que la tabla COCHES tiene los campos: nombre, color, motor


Me gustaria poder sacar una consulta como esta:

Código:
Nombre           Color        Arbol                Motor
Pera             Verde        Peral                (null/vacio)
Limon            Amarillo     Limonero             (null/vacio)
Opel Astra       Azul        (null/vacio)          Diesel
Seat Ibiza       Rojo        (null/vacio)          Gasolina

Una consulta echa con un UNION seria como lo siguiente, pero ESTO NO ES LO QUE QUIERO CONSEGUIR:

Código:
Nombre           Color        Arbol                
Pera             Verde        Peral                
Limon            Amarillo     Limonero             
Opel Astra       Azul         Diesel
Seat Ibiza       Rojo         Gasolina
Muchas Gracias por las respuestas
__________________
Solo hay 10 clases de personas, las que saben binario y las que no.
  #8 (permalink)  
Antiguo 28/04/2006, 05:23
 
Fecha de Ingreso: abril-2006
Mensajes: 268
Antigüedad: 18 años
Puntos: 2
Bueno, en tu ejemplo de las frutas y los coches podria ser algo asi:

SELECT *, NULL AS motor FROM frutas UNION SELECT nombre, color, NULL, motor FROM coches

Saludos.
  #9 (permalink)  
Antiguo 28/04/2006, 07:24
Avatar de oskarL  
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 499
Antigüedad: 18 años, 11 meses
Puntos: 2
vale, notwen, gracias, perfecto, pero no es eso precisamente lo que quiero, jeje.

No quiero utilizar el nombre de los campos, entre otras cosas, porque pueden llegar a ser muuuuuuchos. Pero muchos muuuuuuuuuuchos, eh :p
__________________
Solo hay 10 clases de personas, las que saben binario y las que no.
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 23:22.