Foros del Web » Programación para mayores de 30 ;) » Java »

Trabajar con dos conexiones

Estas en el tema de Trabajar con dos conexiones en el foro de Java en Foros del Web. Hola, quisiera saber como puedo hacer una consulta SQL, en la que estan involucradas dos conexiones. Ahora tengo dos conexiones, cada una a su correspondiente ...
  #1 (permalink)  
Antiguo 04/01/2006, 05:09
Avatar de pyanqn  
Fecha de Ingreso: noviembre-2005
Mensajes: 331
Antigüedad: 18 años, 5 meses
Puntos: 8
Pregunta Trabajar con dos conexiones

Hola, quisiera saber como puedo hacer una consulta SQL, en la que estan involucradas dos conexiones.

Ahora tengo dos conexiones, cada una a su correspondiente base de datos (MySql). y Lo que necesito es hacer un join entre dos tablas, cada una correspondiente a cada conexion.

algo así como:

Select *
From BD1.tabla1, BD2.tabla2
Where BD1.tabla1.campo1=BD2.tabla2.campo2

Gracias
  #2 (permalink)  
Antiguo 04/01/2006, 11:03
 
Fecha de Ingreso: agosto-2005
Mensajes: 142
Antigüedad: 18 años, 8 meses
Puntos: 0
Yo lo que haria seria por codigo controlar el resultado de ambas conexiones. Es decir:

while (haya valores de la primera conexion){

realizar segunda consulta where valorSegundaConexion=ValorPrimeraConexion

}

Espero que te sea de ayuda, si lo ves liado te busco algun código donde haya hecho eso.
  #3 (permalink)  
Antiguo 05/01/2006, 04:54
Avatar de pyanqn  
Fecha de Ingreso: noviembre-2005
Mensajes: 331
Antigüedad: 18 años, 5 meses
Puntos: 8
Entiendo. Bien la pregunta ahora es, y me gustaria me corrigieras, realizo dos consultas, una a cada tabla, perocomo lo que necesito es mostrar en una grilla el resultado de un join entre las tablas, me decis que lo haga a pulmon, es decir, busco y agrego al modelo los datos que necesite en donde necesite.

¿Es decir no hay una forma mas faciel de obtener en un ResultSet los datos que necesito?

Gracias. y tre agradeceria si me enviaras algun tipo de ejemplo. para tener alguna referencia.
  #4 (permalink)  
Antiguo 05/01/2006, 07:42
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
No, ten en cuenta que el select se realiza en la base de datos, asi que si las tablas estan en dos bases de datos diferentes, no puedes hacer un select que las englobe a las dos*.

*Existen formas de hacerlo pero no son cuestiones de Java si no de BDD, ya que se puede hacer que una tabla de una BDD aparezca como tabla en la otra BDD. Como por ejemplo en Oracle, con DB-links. Pero eso es interno a la BDD y Java no tiene nada que ver.
  #5 (permalink)  
Antiguo 05/01/2006, 12:01
Avatar de dogduck  
Fecha de Ingreso: enero-2006
Ubicación: ¿Atlantida, Hesperides, Islas afortunadas?
Mensajes: 2.231
Antigüedad: 18 años, 4 meses
Puntos: 19
A mi se me ocurre , el siguiente pseudo algoritmo desde el lado de java:

Te conectas a bbdd1 en server1

Haces una consulta1 a bbdd1 y obtienes un resulset1 ( la tabla que te interese : select * from bbdd1.tabla1;)

Te conectas a bbdd2 en server2

Creas una tabla temporal1 con el resulset1 en la bbdd2 ( ¡que sencillo decirlo en una sola linea ...:-;) )

Efectuas una consulta con temporal1 y tabla2 en la bbdd2: select * from
bbdd2.temporal1, bbdd2.tabla2 where bbdd2.temporal1.campoX=bbdd2.tabla2.campoY;

Borras la tabla temporal1 ( si fuera menester )

... suerte
  #6 (permalink)  
Antiguo 09/01/2006, 05:35
Avatar de pyanqn  
Fecha de Ingreso: noviembre-2005
Mensajes: 331
Antigüedad: 18 años, 5 meses
Puntos: 8
gracias!!!
  #7 (permalink)  
Antiguo 16/01/2006, 06:56
Avatar de pyanqn  
Fecha de Ingreso: noviembre-2005
Mensajes: 331
Antigüedad: 18 años, 5 meses
Puntos: 8
Bien. el problema es que no puedo crear tablas temporales en la base de datos, no porque no puedo, sino porque no debo. es politica de la empresa.

Así que ahora sigo buscando una solución...
por ahora no se me ocurre nada (estoy con otra cosa) me gustaria me den una mano con este problemita.

¿Cómo hago para hacer un join con dos tablas que estan en dos bases de datos distintas de desde mi aplicacion y sin crear tablas temporales?
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 07:52.