SQL Server - SQL UNIR 4 TABLAS

 
Vista:

SQL UNIR 4 TABLAS

Publicado por ALONDRA (2 intervenciones) el 15/03/2020 02:30:33
:NO ENTIENDOOO

En base a las siguientes tablas, realiza la consulta de selección que permita unir a todas las tablas. Al final de la consulta, justifica el comando que utilizaste para hacer la unión.


Tabla Estudiantes
IDAlumno Matrícula nombreEst apellidoPat FechaNacimiento Dirección

1 12345 Moises Gonzaga 1991-12-03 Calle Test
2 78902 Adrian Perez 1994-03-05 Calle Villa Nueva 89909,No. 340
3 97648 Rosaura Lopez 1990-09-11 Calle Escobedo, 23456, No. 45

NULL NULL NULL NULL NULL NULL






Tabla Estudiantes_Materias
IDAlumno IDMateria Notas

1 1 NA
2 2 NA
1 2 NA
2 1 NA
3 1 NA
3 2 NA
3 3 NA

NULL NULL NULL

Tabla Materias
IDMateria NombreMateria Descripción idProfesor

1 Matemáticas 1er. Grado 1
2 Ciencias Naturales 2do. Grado 2
3 Programación 2do. Grado 3

NULL NULL NULL NULL

Tabla Profesores
IdProfesor nombreProf fechaNacProf

1 Juan Carlos 12/03/1990
2 Esperanza Gutierrez 05/11/1986
3 Aurora Mendez 11/12/1984
4 Roberto Prado 05/05/1980
5 Juan Felipe Cortez 10/07/1987

NULL NULL NULL
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
Imágen de perfil de Francisco
Val: 13
Ha aumentado 1 puesto en SQL Server (en relación al último mes)
Gráfica de SQL Server

SQL UNIR 4 TABLAS

Publicado por Francisco (2 intervenciones) el 15/03/2020 14:56:45
Tenés que hacer un join. Podés empezar por cualquiera de los dos: profesor o estudiante.

Por ej.

para tu caso:

select * from Profesores p left join Materias m on p.IdProfesor = m.IdProfesor join Estudiantes_materias EM on EM.idMateria = m.idMateria right join Estudiantes e on EM.idAlumno = e.idAlumno

Lo que se hizo prácticamente fue determinar los profesores que están dando materias y los que no y los alumnos que cursan materias como los que no cursan.

Usé el left join por que mandé también los profesores que no están asignados a ninguna materia y el right join por que mandé también los estudiantes que no están inscriptos en ninguna materia.

En resumen, en la unión o conjunción de las 4 tablas que es prácticamente lo mismo, a diferencia de que la unión es con el operador "union" y la conjunción con el join, en esta consulta se determinó los profesores que no están dando materias y los alumnos que no están inscriptos.

si vos querés determinar los profesores que están dando clases y los alumnos que están inscriptos en todas las materias, tu consulta debería ser la siguiente:


select * from Profesores p join Materias m on p.IdProfesor = m.IdProfesor join Estudiantes_materias EM on EM.idMateria = m.idMateria join Estudiantes e on EM.idAlumno = e.idAlumno
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

SQL UNIR 4 TABLAS

Publicado por Alondra120 (2 intervenciones) el 18/03/2020 02:38:50
Disculpa me podrías seguir ayudando?
Me dejaron otra actividad en base a eso, si me ayudaste con esa actividad me salió bien
Ahora me dejaron esto

Hacer en consulta DML (SELECT) realizada en la primera actividad. Esta consulta debe mostrar únicamente los siguientes campos:
• Matricula del Estudiante
• Nombre del Estudiante (debe contener el Apellido Paterno)
• Nombre de la Materia
• La descripción de la Materia
• Nombre del Profesor
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