Java - Devolución de datos select mysql

 
Vista:
sin imagen de perfil
Val: 31
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Devolución de datos select mysql

Publicado por Joker (27 intervenciones) el 09/12/2021 23:32:45
Buenas,
Tengo una duda y es que al pedir las notas de un alumno, me repite todo el rato el nombre y luego muestra el nombre:
1
2
3
4
5
6
7
8
9
10
11
12
13
Rubio Parra, Eric
-----------------------------
AD		10
Rubio Parra, Eric
-----------------------------
PMDM		9
DI		9
Marin Andia, Cristina
-----------------------------
PMDM		5
Marin Andia, Cristina
-----------------------------
PSP		5

La consulta es la siguiente:
1
2
3
4
5
6
7
8
9
10
rs = stmt.executeQuery("SELECT DISTINCT apenom, abreviatura, nota FROM alumnos, asignaturas, notas WHERE alumnos.dni=notas.dni AND asignaturas.cod=notas.cod ORDER BY apenom DESC;");
			while (rs.next()) {
				String alumn = rs.getString("apenom");
				System.out.println(alumn);
				System.out.println("-----------------------------");
 
				String asignatu = rs.getString("abreviatura");
				int not = rs.getInt("nota");
				System.out.println(asignatu + "		" + not);
			}

No consigo que solo me saque un Eric y luego todas sus notas. Si alguien me puede ayudar se lo agradeceria
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Devolución de datos select mysql

Publicado por gaspy (3 intervenciones) el 10/12/2021 11:26:07
Nose como estan formadas las tablas de la bbdd pero supongo que puedes hacer algo como esto para que te funcione:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
rs1 = stmt.executeQuery("SELECT apenom, dni FROM alumnos ORDER BY apenom DESC;");
while (rs1.next()) {
 
	String alumn = rs.getString("apenom");
	String dni = rs.getString("dni");
 
	System.out.println(alumn);
	System.out.println("-----------------------------");
 
	rs2 = stmt.executeQuery("SELECT abreviatura, nota FROM asignaturas, notas WHERE notas.dni="+dni+" AND asignaturas.cod=notas.cod;");
 	while (rs2.next()) {
 
 		String asignatu = rs.getString("abreviatura");
		int not = rs.getInt("nota");
		System.out.println(asignatu + "		" + not);
	}
 
	//salto de linea para separar los alumnos
	System.out.println();
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Devolución de datos select mysql

Publicado por Tom (1831 intervenciones) el 10/12/2021 11:36:50
Normal.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
	// Remember last name
    String last = "";
	rs = stmt.executeQuery("SELECT DISTINCT apenom, abreviatura, nota FROM alumnos, asignaturas, notas WHERE alumnos.dni=notas.dni AND asignaturas.cod=notas.cod ORDER BY apenom DESC;");
 
	while(rs.next()) {
		String alumn = rs.getString("apenom");
		if(!alumn.equals(last)) {
			System.out.println(alumn);
			System.out.println("-----------------------------");
			last = alumn;
		}
		String asignatu = rs.getString("abreviatura");
		int not = rs.getInt("nota");
		System.out.println(asignatu + "		" + not);
	}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar