MySQL - Filtrar dos tablas de mysql

 
Vista:

Filtrar dos tablas de mysql

Publicado por Humberto Martinez (2 intervenciones) el 23/07/2018 19:44:22
Hola amigos este es mi problema:

Tengo Dos Tablas: Tabla1 y la otra Tabla2

En la tabla1 tengo los campos:

/Id_asignatura --- Nombre_Asignatura --- Id_escuela
/ / / /
//////////////////////////////////////////////////////////////////////////////////////////

en la Tabla2 tengo los campos:

Id_estudiante -- Id_Asignatura -- Nombre_Asignatura Id_escuela -- Nombre -- Cedula
/ / / / / / /
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


¿Cómo puedo elegir los Nombre_Asignatura de la Tabla1 que no aparezcan repetidos en Nombre_Asignatura de la Tabla2 donde el campo Id_estudiante de la tabla2 sea igual a un Id de estudiante que capturo en pantalla a traves de un Text label.

en otras palabras cuando en un text label introduzco el Id del estudiante se debe mostrar todas las asignaturas que esten en la tabla1 y no aparezcan ya matriculadas en la tabla2.
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
sin imagen de perfil
Val: 98
Bronce
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Filtrar dos tablas de mysql

Publicado por Yamil Bracho (40 intervenciones) el 23/07/2018 19:51:37
Pudiera ser algo como :

$sql = "SELECT DISTINCT t2.Id_Asignatura, i1.Nombre_Asignatura
FROM Tabla2 t2
INNER JOIN Tabla1 t1 ON t1.Id_asignatura = t2.Id_Asignatura
WHERE t2.Id_estudiante = " . $idEstudiante;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Filtrar dos tablas de mysql

Publicado por Humberto Martinez (2 intervenciones) el 23/07/2018 20:50:59
Gracias por su tiempo amable Yamil Bracho, ojala me puedas ayudar, lo probe y me da una consulta distinta aunque pienso que yo no he sabido explicarme.

Lo que estoy haciendo es una Base de datos de una escuela y quiero que al matricular a un estudiante en una asignatura, cuando vuelva a matricularlo en otra no me salga las que ya estan matriculadas

quiero hacer un select que muestre todas las materias que pueden ser matriculadas y excluya las ya matriculadas, es alli donde surge mi pregunta.

para realizar el filtro utilizo una variable con el Id del estudiante

Tabla1 tiene los datos donde se registran las asignaturas que pertenecen a la escuela y tabla2 almacena las materias matriculadas.
tengo que hacer una consulta que identifique si la asignatura ha sido matriculada, pero no se como hacerlo.

El select debe mostrar todas las materias que pertenecen a la escuela y que no han sido matriculadas.

DATOS DE LA TABLA1 DONDE SE LOCALIZAN LAS ASIGNATURAS


/Id_asignatura --- Nombre_Asignatura --- Id_escuela
/ / / /
//////////////////////////////////////////////////////////////////////////////////////////

DATOS DE LA TABLA 2 DENDE SE GUARDAN LAS MATERIAS MATRICULADAS
Id_estudiante -- Id_Asignatura -- Nombre_Asignatura Id_escuela -- Nombre -- Cedula
/ / / / / / /
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 98
Bronce
Ha mantenido su posición en MySQL (en relación al último mes)
Gráfica de MySQL

Filtrar dos tablas de mysql

Publicado por Yamil Bracho (40 intervenciones) el 23/07/2018 20:58:13
OK.
la consulta que te especifique fue las materias que ha inscrito el alumno. Asiq ue si quieres saber qu emateria no ha inscrito puedes hacer algo como :

1
2
3
4
$sql = "SELECT Id_Asignatura, Nombre_Asignatura from tabla1 WHERE Id_Asinatura NOT IN (SELECT DISTINCT t2.Id_Asignatura,
FROM Tabla2 t2
INNER JOIN Tabla1 t1 ON t1.Id_asignatura = t2.Id_Asignatura
WHERE t2.Id_estudiante = " . $idEstudiante);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar