[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.





























