Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Ayuda - Consulta a la Base de Datos

Estas en el tema de Ayuda - Consulta a la Base de Datos en el foro de Bases de Datos General en Foros del Web. tengo las siguientes tablas TP_Usuarios (IdUsr - Nombre - CodEst) TB_Materiasn (IdMat - NomMat) TR_Alumnos (IdUsr - IdMat - Grupo) TR_Profesores (IdUsr - IdMat - ...
  #1 (permalink)  
Antiguo 29/11/2010, 18:54
 
Fecha de Ingreso: julio-2010
Mensajes: 16
Antigüedad: 14 años, 3 meses
Puntos: 0
Ayuda - Consulta a la Base de Datos

tengo las siguientes tablas

TP_Usuarios (IdUsr - Nombre - CodEst)
TB_Materiasn (IdMat - NomMat)
TR_Alumnos (IdUsr - IdMat - Grupo)
TR_Profesores (IdUsr - IdMat - Grupo)

necesito encontrar las materias y los profesores que dan esas materias a determinado estudiante

hasta ahora he conseguido averiguar las materias que ve el estudiante usando
Cita:
SELECT NomMat AS Materia FROM TB_Materiasn WHERE TB_Materiasn.IdMat in (SELECT DISTINCT TR_Profesores.IdMat FROM TR_Profesores, TR_Alumnos, TB_Materiasn WHERE TR_Alumnos.IdMat = TR_Profesores.IdMat AND TR_Alumnos.IdUsr = (SELECT IdUsr FROM TP_Usuarios WHERE CodEst = 2062237 ) AND TR_Alumnos.Grupo = TR_Profesores.GrupoMat)

y con este otro consigo saber que profesores le dictan materias al estudiante
Cita:
SELECT DISTINCT PrimNomUsr FROM TP_Usuarios, TB_Materiasn
WHERE TP_Usuarios.IdUsr in (SELECT DISTINCT TR_Profesores.IdUsr FROM TR_Profesores, TR_Alumnos, TB_Materiasn
WHERE TR_Alumnos.IdMat = TR_Profesores.IdMat AND TR_Alumnos.IdUsr = (SELECT IdUsr FROM TP_Usuarios WHERE CodEst = 2062237)
AND TR_Alumnos.Grupo = TR_Profesores.GrupoMat)
pero no he podido encontrar una forma de unir las dos consultas de hacer que muestran el profesor y la materia

si alguien puede darme consejos se lo agradezco
  #2 (permalink)  
Antiguo 30/11/2010, 15:25
 
Fecha de Ingreso: julio-2010
Mensajes: 16
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Ayuda - Consulta a la Base de Datos

Código MySQL:
Ver original
  1. SELECT DISTINCT NomMat AS Materia, TP_Usuarios.PrimNomUsr AS Profesor FROM TB_Materiasn
  2. INNER JOIN TR_Profesores ON TB_Materiasn.IdMat = TR_Profesores.IdMat
  3. INNER JOIN TP_Usuarios ON TP_Usuarios.IdUsr = TR_Profesores.IdUsr
  4. INNER JOIN TR_Alumnos ON TR_Alumnos.IdMat = TB_Materiasn.IdMat AND TR_Alumnos.IdUsr = (SELECT IdUsr FROM TP_Usuarios WHERE CodEst = 2032081)
  5. AND TR_Alumnos.Grupo = TR_Profesores.GrupoMat
  6. ORDER BY PrimNomUsr


pude encontrar una forma para solucionarlo

lo dejo por si alguien hace las mismas burradas que yo XD
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 14:15.