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

consultar dos tablas al mismo tiempo

Estas en el tema de consultar dos tablas al mismo tiempo en el foro de Bases de Datos General en Foros del Web. hola que tal, por mas que he buscado y leido no logro entender como buscar en dos tablas, lo que quiero es esto: seleccionar de ...
  #1 (permalink)  
Antiguo 05/02/2008, 16:58
 
Fecha de Ingreso: agosto-2007
Mensajes: 123
Antigüedad: 16 años, 8 meses
Puntos: 0
consultar dos tablas al mismo tiempo

hola que tal, por mas que he buscado y leido no logro entender como buscar en dos tablas, lo que quiero es esto:

seleccionar de la tabla1 y de la tabla2 todos los campos donde numero=4

lo he hecho asi pero no me sale:

select * from tabla1 inner join tabla2 on tabla1.numero where numero = 4;

gracias de antemano
  #2 (permalink)  
Antiguo 05/02/2008, 18:54
 
Fecha de Ingreso: febrero-2008
Mensajes: 75
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: consultar dos tablas al mismo tiempo

La idea del inner join es emparejar filas de distintas tablas. La sintaxis es la siguiente:

FROM _tabla1_ INNER JOIN _tabla2_ ON _tabla1.col1-comp-tabla2.col2


Las dos tablas a relacionar tienen que tener una columna (al menos) que tengan los mismos valores en ambas tablas, es decir una columna en común.
En tu caso, suponiendo que el campo numero están en ambas tablas y que almacenan los mismos valores, quedaría asi:

SELECT *
FROM tabla1 inner join tabla2 on tabla1.numero=tabla2.numero
WHERE tabla1.numero = 4; --podes usar tambien tabla2.numero


Si no es numero el campo que tienen en común, entonces tenés que usar aquel campo con el que se relacionan.


Otra forma de hacerlo (y que se entiende un poco mejor) en vez de usar el inner join es:

SELECT *
FROM tabla1, tabla2
WHERE tabla1.numero=tabla2.numero
AND tabla1.numero=4

Se hace la relación de las tablas en el where en vez del from....depende de cada uno en como usarla; algunos dicen que es más eficiente usar el inner join, pero como dije antes, depende de los gustos de cada uno

Espero te haya servido,
Saludos
  #3 (permalink)  
Antiguo 05/02/2008, 19:25
 
Fecha de Ingreso: agosto-2007
Mensajes: 123
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: consultar dos tablas al mismo tiempo

gracias por tu respuesta, me fue muy util, ahora tengo otra duda, como seria la consulta para encontrar coincidencias en dos tablas, por ejemplo:

seleciona numero from tabla1.numero, tabla2.numero, where numero = 4

lo quise poner como me muestras en el segundo ejemplo, pero en vez de ponerle "*" le pongo "numero", pero no me lo hace, y si se lo dejo lo hace bien, lo que quiero es buscar solo ese registro en las dos tablas

gracias nuevamente por tu ayuda
  #4 (permalink)  
Antiguo 05/02/2008, 19:42
 
Fecha de Ingreso: febrero-2008
Mensajes: 75
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: consultar dos tablas al mismo tiempo

De nada!

Ahora..... no te funciona porque hay dos tablas que tienen el mismo campo: numero; entonces la consulta no sabe a cuál de las dos te estás refiriendo.
Si te entendí bien, lo que querés es que te devuelva solo ese campo pero en el caso dónde numero=4 en ambas tablas, entonces quedaría (s/el segundo caso que te pase):

SELECT tabla1.numero --ó tabla2 ya que ambas tienen el mismo campo
FROM tabla1, tabla2
WHERE tabla1.numero = tabla2.numero
and tabla1.numero=4


Saludos!
  #5 (permalink)  
Antiguo 05/02/2008, 20:07
 
Fecha de Ingreso: agosto-2007
Mensajes: 123
Antigüedad: 16 años, 8 meses
Puntos: 0
Re: consultar dos tablas al mismo tiempo

muchas gracias, eso era lo que buscaba. saludos
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 06:02.