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

Consultar varias tablas a la vez

Estas en el tema de Consultar varias tablas a la vez en el foro de Mysql en Foros del Web. Probablemente es muy sencillo pero me ayudaría mucho que me dieseis alguna pista sobre como obtener datos de 2 tablas distintas a la vez para ...
  #1 (permalink)  
Antiguo 26/12/2007, 20:00
Avatar de intergus  
Fecha de Ingreso: mayo-2007
Mensajes: 126
Antigüedad: 17 años
Puntos: 3
Consultar varias tablas a la vez

Probablemente es muy sencillo pero me ayudaría mucho que me dieseis alguna pista sobre como obtener datos de 2 tablas distintas a la vez para poder mostrar todos los datos en pantalla con una sola consulta.

Es decir tabla A y tabla B, en ambas un campo codigo_empresa entre otros.
Quiero hacer una consulta donde de la tabla A saque todos los datos y de la tabla B (donde el campo codigo_empresa no se repite), saque los campos que yo le diga (para completar la información) para cada registro de la tabla A.

Espero haberme explicado y que me podais poner un ejemplillo.

Gracias
  #2 (permalink)  
Antiguo 26/12/2007, 22:33
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
Re: Consultar varias tablas a la vez

Esto lo podes hacer con INNER JOIN

Más o menos así:

SELECT campos_a_mostar_de_A , campos_a_mostar_de_A
FROM A INNER JOIN B ON a.codigo_empresa = b.codigo_empresa

Lo que hace el INNER JOIN es tomar las filas de la tabla A, y unirla con una fila de B que tenga igual el campo codigo_empresa.

Cabe aclara que si una fila de A no tiene ninguna fila correspondiente en B, entonces esa fila de A, no aparece en el resultado. Lo mismo ocurre con B hacia A.
  #3 (permalink)  
Antiguo 27/12/2007, 11:22
 
Fecha de Ingreso: diciembre-2007
Mensajes: 8
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Consultar varias tablas a la vez

una pregunta:
con eso se puede usar WHERE o algo para seleccinar solo una linea? o sea q no aparescan todas las entradas xq sino me aparec todo :S
weno si me podes responder eso estaria muy agradecido
desde ya muchas gracias

xXPechUXx
  #4 (permalink)  
Antiguo 27/12/2007, 11:23
Avatar de intergus  
Fecha de Ingreso: mayo-2007
Mensajes: 126
Antigüedad: 17 años
Puntos: 3
Re: Consultar varias tablas a la vez

Muchas gracias, lo voy a probar. Creo que es lo que necesito.

Ya solo una pequeña duda, ¿no puedo elegir campos de B tambien, solo de A?
Gracias de nuevo
  #5 (permalink)  
Antiguo 27/12/2007, 11:51
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
Re: Consultar varias tablas a la vez

Sep, si puedes. De hecho fue un error mío.
El select debería ser así:
SELECT campos_a_mostar_de_A , campos_a_mostar_de_B
FROM A INNER JOIN B ON a.codigo_empresa = b.codigo_empresa
  #6 (permalink)  
Antiguo 27/12/2007, 12:03
 
Fecha de Ingreso: diciembre-2007
Mensajes: 8
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Consultar varias tablas a la vez

y se puede seleccionar una linea sola? x ejemplo tendo 2 tablas:
tabla1 y tabla2, kiero q coincida Index en los dos pero no kiero seleccionar todo o sea q kiero seleccionar una linea sola:
tabla1
Index Nombre
1 pechuga
2 Josesito

Tabla2
Index Apellido
1 Gomez
2 Perez

pero me muesta todo :S
kiero q me muestre el apellido de pechuga nomas xq con eso me muestra el apellido de los dos :S

seria como un WHERE pero no se como hacerlo con como vos mostras para seleccionar las dos DB

desde ya muchas gracias
xXPechUXx
  #7 (permalink)  
Antiguo 27/12/2007, 12:32
Avatar de omar1977  
Fecha de Ingreso: abril-2006
Mensajes: 178
Antigüedad: 18 años
Puntos: 4
Re: Consultar varias tablas a la vez

Recuerda que el JOIN tiene variables dependiendo de la direcion, es decir un filtro de las tuplas dependiendo de la consulta

ejp: INNER JOIN
LEFT JOIN
RIGHT JOIN
y hay mas, es solo depende de lo que necesitas, ojea estas paginillas, yo las uso frecuentemente
y ayudan mucho

http://mysql.conclase.net/curso/index.php?sen=JOIN

saludos
__________________
no hay nadie que sea tan inutil, por ultimo sirve como mal ejemplo
  #8 (permalink)  
Antiguo 27/12/2007, 13:37
 
Fecha de Ingreso: diciembre-2007
Mensajes: 8
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Consultar varias tablas a la vez

muchas gracias por responder ^^
ahora me lo estoy leyendo, es que soy nuevo en esto y segun lo que entiendo el right join es para que primero lea la tabla derecha y el left join para que primero lea la tabla izquierda entonses seria que
a LEFT JOIN b ON a.Index=b.Index WHERE a.Nombre='pechuga'
creo que es asi :S ahora voy a intentar

EDITO Y AUTORESPONDO XD:
esta mal:
es asi:
SELECT * FROM charflags AS a, charstats AS b
WHERE a.IndexPJ = b.IndexPJ and a.Nombre='$I'

eso me andubo de 10 y de paso aprendi a darles alias a las tablas xD
ah muchas gracias x la pagina que me pasaste me va a ser muy util ^^

Última edición por pechuga; 27/12/2007 a las 13:55
  #9 (permalink)  
Antiguo 27/12/2007, 15:39
Avatar de omar1977  
Fecha de Ingreso: abril-2006
Mensajes: 178
Antigüedad: 18 años
Puntos: 4
Re: Consultar varias tablas a la vez

Gracias a ti y a todos.....
siempre es bueno aportar con lo que nosotros sabemos
lo de la pagina, yo la uso hace un par de años, y creanme es muy util.....

feliz fin de Año
__________________
no hay nadie que sea tan inutil, por ultimo sirve como mal ejemplo
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 21:06.