estoy relizando una consulta de una pagina web con JSP y struts hacia una base de datos con MySQL. Tengo 6 tablas relacionadas (socios, actividad1, actividad2, actividad3, casilleros y regaderas). El siguiente codigo es con el cual realizao la consulta:
Código PHP:
public ConsultarSociosVO ConsultarFolio (ConsultarSociosVO conVO)throws Exception
{
try{
if(this.conexion==null){
this.getConnection();
}
final String Sql = " SELECT * FROM socios INNER JOIN actividad_1 ON socios.fsocio=actividad_1.fsocio"+
" INNER JOIN actividad_2 ON socios.fsocio=actividad_2.fsocio"+
" INNER JOIN actividad_3 ON socios.fsocio=actividad_3.fsocio"+
" INNER JOIN rentacasilleros ON socios.fsocio=rentacasilleros.fsocio"+
" INNER JOIN rentaregaderas ON socios.fsocio=rentaregaderas.fsocio"+
" WHERE socios.fsocio=?";
pst = conexion.prepareStatement(Sql);
pst.setInt(1, conVO.getFsocio());
/* pst.setInt(2, conVO.getFsocio());
pst.setInt(3, conVO.getFsocio());
pst.setInt(4, conVO.getFsocio());*/
resultSet = pst.executeQuery();
while(resultSet.next()){
conVO.setFsocio(resultSet.getInt("fsocio"));
conVO.setNombre(resultSet.getString("nombre"));
conVO.setPaterno(resultSet.getString("app"));
conVO.setMaterno(resultSet.getString("apm"));
conVO.setfinsc(resultSet.getString("finscripcion"));
conVO.setfexamen(resultSet.getString("fexamen"));
conVO.setNombre2(resultSet.getString("nombre2"));
conVO.setPaterno2(resultSet.getString("app2"));
conVO.setNombre3(resultSet.getString("nombre3"));
conVO.setPaterno3(resultSet.getString("app3"));
conVO.setAct1(resultSet.getString("actividad"));
conVO.setDias1(resultSet.getString("dias"));
conVO.setTser1(resultSet.getString("servicio"));
conVO.setInst1(resultSet.getString("instructor"));
conVO.setfinicio(resultSet.getString("finicio"));
conVO.setftermino(resultSet.getString("ftermino"));
conVO.setAct2(resultSet.getString("actividad2"));
conVO.setDias2(resultSet.getString("dias2"));
conVO.setTser2(resultSet.getString("servicio2"));
conVO.setInst2(resultSet.getString("instructor2"));
conVO.setfinicio2(resultSet.getString("finicio2"));
conVO.setftermino2(resultSet.getString("ftermino2"));
conVO.setAct3(resultSet.getString("actividad3"));
conVO.setDias3(resultSet.getString("dias3"));
conVO.setTser3(resultSet.getString("servicio3"));
conVO.setInst3(resultSet.getString("instructor3"));
conVO.setfinicio3(resultSet.getString("finicio3"));
conVO.setftermino3(resultSet.getString("ftermino3"));
conVO.setTcasillero(resultSet.getString("tcasillero"));
conVO.setLocal(resultSet.getString("localizacion"));
conVO.setNumCasi(resultSet.getString("numero"));
conVO.setfinicioCa(resultSet.getString("finicioCa"));
conVO.setfterminoCa(resultSet.getString("fterminoCa"));
conVO.setVismen(resultSet.getString("visita_mensual"));
conVO.setfregaini(resultSet.getString("finicioRe"));
conVO.setfregater(resultSet.getString("fterminoRe"));
}//// fin del while
resultSet.close();
pst.close();
this.conexion.close();
}/// fin del try
catch(Exception e){
System.out.println(e.getMessage());
throw new Exception(e.getMessage());
}
return conVO;
}
La consulta la realiza de manera optima (bien) cuando todas y cada una de las tablas contienen informacion sobre un cliente, pero el problema que tengo es que cuando una de las tablas no aparece la informacion de un cliente (Ya que no es necesario llenar todas las tablas, al menos que el cliente asi lo desee) no realiza la busqueda y por lo tanto no me muestra informacion alguna sobre algun cliente determinado. Al ejecutar el problama y revisarlo linea por linea el error aparece cuando al entrar al WHILE no accede a las siguientes sentencias y se "salta" hasta finalizar el WHILE.
No se si habra algun comado o algo que me pueda ayudar a evitar este problema???????