Ocultar registros duplicados
Publicado por Germán (9 intervenciones) el 13/02/2017 04:54:18
Buenas, tengo 2 tablas relacionadas por una FK.
>>>Tabla alumnos<<<
id_alumno dni apellido nombre
>>>Tabla alumnomaterias<<<
id_alumnomaterias dni(fk) nombre_materia turno
La relacion es 1 a n, en la cual un dni (en este caso 1 alumno) se puede inscribir a varias materias, por ende me duplica los dni.
Lo que necesito es listar los dni SIN DUPLICARLOS de los alumnos que cursan en turno vespertino.
Para ello utilizo esta función:
$consultirijilla = mysql_query("SELECT DISTINCT dni FROM alumnomaterias WHERE turno = ''TV");
En este caso me lista correctamente los dni de quienes cursan en TV, pero no me muestra los campos NOMBRE y APELLIDO, ya que estos están en la tabla ALUMNOS.
Entonces se me ocurrió hacer la siguiente sentencia en reemplazo de la anterior:
$consultirijilla = mysql_query("SELECT * FROM alumnos INNER JOIN alumnomaterias ON alumnos.dni = alumnomaterias.dni WHERE alumnomaterias.turno = 'TV'");
Aqui me lista los campos DNI, APELLIDO y NOMBRE como yo quería, PERO me duplica los DNI.
La solución debe estar en una mezcla entre ambas sentencias. Lo que se me ocurre es hacer un sub-select, pero lo probé y no muestra nada.
Alguien podria ayudarme?
Gracias.
>>>Tabla alumnos<<<
id_alumno dni apellido nombre
>>>Tabla alumnomaterias<<<
id_alumnomaterias dni(fk) nombre_materia turno
La relacion es 1 a n, en la cual un dni (en este caso 1 alumno) se puede inscribir a varias materias, por ende me duplica los dni.
Lo que necesito es listar los dni SIN DUPLICARLOS de los alumnos que cursan en turno vespertino.
Para ello utilizo esta función:
$consultirijilla = mysql_query("SELECT DISTINCT dni FROM alumnomaterias WHERE turno = ''TV");
En este caso me lista correctamente los dni de quienes cursan en TV, pero no me muestra los campos NOMBRE y APELLIDO, ya que estos están en la tabla ALUMNOS.
Entonces se me ocurrió hacer la siguiente sentencia en reemplazo de la anterior:
$consultirijilla = mysql_query("SELECT * FROM alumnos INNER JOIN alumnomaterias ON alumnos.dni = alumnomaterias.dni WHERE alumnomaterias.turno = 'TV'");
Aqui me lista los campos DNI, APELLIDO y NOMBRE como yo quería, PERO me duplica los DNI.
La solución debe estar en una mezcla entre ambas sentencias. Lo que se me ocurre es hacer un sub-select, pero lo probé y no muestra nada.
Alguien podria ayudarme?
Gracias.
Valora esta pregunta
0