Siente el pensamiento; piensa el sentimiento
M. Unamuno

[JDBC] – Recuperar campos de dos tablas diferentes

Queremos realizar una consulta de los datos contenidos en dos tablas diferentes. Para ello podemos utilizar una sentencia SQL del siguiente estilo:

SELECT *
FROM SOLICITUDES s, ENTIDADES e
WHERE s.COD_ESTADO = 2
AND   e.COD_ENTIDAD = s.COD_ENTIDAD

Ahora la duda es, cómo recuperar los datos ?

Si las columnas de las dos tienen nombres distintos pues no hay mayor problema, lo hacemos igual que si la consulta fuese a una única tabla:

rs.getInt("COD_SOLICITUD");

La duda surge si las dos tablas tienen dos columnas con el mismo nombre. En el ejemplo ambas tablas tienen una columna COD_ENTIDAD (aunque los valores de los resultados son iguales por la condición del AND). Desgraciadamente, el código no funciona con los alias, es decir:

rs.getInt("e.COD_ENTIDAD");

No lo interpreta como "alias.columna" sino como "columna", y por tanto da un error porque la columna no existe.

Si ejecutamos la sentencia SQL en MySQL (o en Oracle…), nos fijamos en las columnas del resultado y encontraremos "COD_ENTIDAD" y "COD_ENTIDAD_1", con lo cual ya podemos acceder a la tabla que queramos.

rs.getInt("COD_ENTIDAD");

rs.getInt("COD_ENTIDAD_1");

No related posts.

Dejanos tu Comentario

Nombre: (Requerido)

E-Mail: (Requerido)

Sitio WEB:

Comentario:

Comenta