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

consultas de dos tablas en la base de datos

Estas en el tema de consultas de dos tablas en la base de datos en el foro de Java en Foros del Web. Buenos días, estoy haciendo algunas consultas a la base de datos y se me hace un poco de lio. Tengo 2 tablas - jhony, que ...
  #1 (permalink)  
Antiguo 07/03/2011, 09:55
 
Fecha de Ingreso: febrero-2011
Mensajes: 45
Antigüedad: 13 años, 2 meses
Puntos: 0
consultas de dos tablas en la base de datos

Buenos días, estoy haciendo algunas consultas a la base de datos y se me hace un poco de lio.

Tengo 2 tablas
- jhony, que tiene usuario, id, pass, rol
- archivos, que tiene idArchivo, nombreArchivo ,tamanoArchivo, archivo, usuario

Quiero recorrer la tabla jhony y por cada usuario contar cuantos archivos tiene. Luego imprimir usuario y cantidad de archivos. Este es el código que hice pero solo imprime el encabezado

Código:
pag.println("<tr><td>Usuario</td><td>Cantidad de Archivos</td></tr>");
                            q1= "select * from jhony";
                            consulta1 = bd.ingreso.executeQuery(q1);
                            String usuarioBD = consulta1.getString("usuario");
                            int contador;

                            while(consulta1.next()){
                                contador=0;
                                q2 = "select * from archivo where usuario='"+usuarioBD+"'";
                                consulta2 = bd.ingreso.executeQuery(q2);
                                while(consulta2.next()){
                                    contador++;
                                }
                                pag.println("<tr><td>"+usuarioBD+"</td><td>"+contador+"</td></tr>");
                            }
mi clase conexión es:

Código:
public class Conexion
{
    Connection admin=null;
    Statement ingreso=null;
    ResultSet valida=null;
    String conexion="jdbc:mysql://localhost:3306/base";
    public void init(ServletConfig con)throws ServletException, InstantiationException, IllegalAccessException
    {
        if(admin==null || ingreso==null)
        {
            try
            {
               Class.forName("com.mysql.jdbc.Driver").newInstance();
               admin = DriverManager.getConnection (conexion,"root", "");
               //System.out.println(admin);
               ingreso = admin.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
               ResultSet.CONCUR_UPDATABLE);
            }
            catch(ClassNotFoundException edr)
            {
                System.out.println("Error Con La Carga Driver");
                System.out.println(edr.getMessage());
            }
            catch(SQLException edb)
            {
                System.out.println("Error Con La Conexion");
                System.out.println(edb.getMessage());
            }
        }
    }
    public void destroy()
    {
    try
        {
            admin.close();
            ingreso.close();
        }
        catch(SQLException e){}
    }
}
  #2 (permalink)  
Antiguo 07/03/2011, 15:10
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: consultas de dos tablas en la base de datos

Lo que tienes que hacer es utilizar una consulta sql con join y count (group by)
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 07/03/2011, 15:54
 
Fecha de Ingreso: febrero-2011
Mensajes: 45
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: consultas de dos tablas en la base de datos

Cita:
Iniciado por Xerelo Ver Mensaje
Lo que tienes que hacer es utilizar una consulta sql con join y count (group by)
Gracias, ya voy a ver como es, yo soy media dura con esas cosas :S

Etiquetas: jsp-servlets, tablas
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 02:41.