Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Mysql (http://www.forosdelweb.com/f86/)
-   -   Una Consulta de Diferentes Campos en Diferentes Tablas (http://www.forosdelweb.com/f86/consulta-diferentes-campos-diferentes-tablas-502869/)

joseluisbz 04/07/2007 11:09

Una Consulta de Diferentes Campos en Diferentes Tablas
 
Tengo las Siguientes Tablas de una sola Base de datos.
Código PHP:

TablaNotasCampos (VigenciaCodigoEstudianteCodigoAsignaturaNota1Nota2Nota3Nota4)

TablaEstudiantesCampos (CodigoEstudianteNombreEstudianteApellido1Apellido2Genero)

TablaAsignaturasCampos (CodigoAsignaturaNombreAsignaturaVigenciaAreaCodigoCurso)

TablaMatriculasCampos (CodigoEstudianteVigenciaCodigoCurso)

TablaCursosCampos (CodigoCursoNombreCursoSeccionJornada

Necesito que al hacer una consulta así:

SELECT CodigoEstudiante, Nota1, Nota2, Nota3, Nota4 FROM Notas WHERE CodigoEstudiante = 'CodEst' AND Vigencia = 'Vignc';

Cómo trabajo con el resultado anterior en MySQL?

SELECT CodigoEstudiante, NombreEstudiante, Apellido1, Apellido2, Genero FROM Estudiantes WHERE CodigoEstudiante = 'CodEst';

Posteriormente capturar el curso al que pertenece desde la tabla matriculas

SELECT CodigoEstudiante, CodigoCurso FROM Matriculas WHERE CodigoEstudiante = 'CodEst' AND Vigencia = 'Vignc';

Del resultado anterior buscar los nombres de los cursos;

SELECT CodigoCurso, NombreCurso, Seccion, Jornada FROM Cursos WHERE CodigoCurso = 'CodCur';

Se podrá hacer todo en una sola consulta Select?


Algo como
Código:

SELECT Notas.CodigoEstudiante, Nota1, Nota2, Nota3, Nota4, Estudiantes.NombreEstudiante, Estudiantes.Apellido1, Estudiantes.Apellido2, Estudiantes.Genero FROM Notas WHERE Notas.CodigoEstudiante = 'CodEst' AND Vigencia = 'Vignc';

Organizar los resultados según Nombres?


el cirujano 04/07/2007 14:04

Re: Una Consulta de Diferentes Campos en Diferentes Tablas
 
usando la sentencias INNER JOIN en tu consultas y asi vas agregando las cantidades de tablas que necesites.. aqui un ejemplo....

Código PHP:

SELECT CodigoCursoNombreCursoSeccionJornadaCodigoEstudianteCodigoCursoNombreEstudianteApellido1Apellido2GeneroCodigoEstudianteNota1Nota2Nota3Nota4 FROM Estudiantes INNER JOIN Matriculas ON Matriculas.CodigoEstudiante=Estudiantes.CodigoEstudiante INNER JOIN Notas ON Notas.CodigoEstudiante=Estudiantes.CodigoEstudiante INNER JOIN ..... 


joseluisbz 05/07/2007 00:02

Re: Una Consulta de Diferentes Campos en Diferentes Tablas
 
Código PHP:

SELECT estudiantes.Apl1estudiantes.Apl2estudiantes.NmbsDefCursos.Crso FROM estudiantesmatriculasDefCursos WHERE matriculas.eIdnt estudiantes.eIdnt AND matriculas.dcIdn DefCursos.dcIdn


joseluisbz 05/07/2007 02:13

Re: Una Consulta de Diferentes Campos en Diferentes Tablas
 
SELECT
estudiantes.Apl1, estudiantes.Nmbs,
docentes.Apl1, docentes.Nmbs,
matriculas.dcIdn, DefCursos.Crso, notas.aIdnt, asignaturas.Nmbr, notas.Nprc1,
DefAreas.Area
FROM
estudiantes, matriculas, notas, asignaturas, DefCursos, DefAreas, docentes, contratos
WHERE
notas.eIdnt = estudiantes.eIdnt AND notas.dvIdn = matriculas.dvIdn AND
matriculas.dcIdn = DefCursos.dcIdn AND
matriculas.eIdnt = estudiantes.eIdnt AND
notas.aIdnt = asignaturas.aIdnt AND notas.dvIdn = asignaturas.dvIdn AND
matriculas.dcIdn = asignaturas.dcIdn AND
DefAreas.daIdn = asignaturas.daIdn AND
asignaturas.dIdnt = contratos.dIdnt AND
docentes.dIdnt = contratos.dIdnt AND
contratos.dvIdn = notas.dvIdn AND
DefCursos.dcIdn = '11A' AND notas.dvIdn = '2007' ORDER BY asignaturas.Nmbr;

Gracias por la respuesta, es algo equivalente a lo anterior.

http://www.tomatoma.ws/articulo.php?...70&forum_id=27

http://www.tomatoma.ws/articulo.php?...35&forum_id=27

http://www.aulaclic.es/sql/t_3_4.htm

joseluisbz 11/07/2007 02:10

Re: Una Consulta de Diferentes Campos en Diferentes Tablas
 
SELECT matriculas.eIdnt, estudiantes.Apl1, estudiantes.Apl2, estudiantes.Nmbs FROM matriculas, estudiantes WHERE estudiantes.eIdnt = matriculas.eIdnt AND matriculas.dvIdn = '2007' AND matriculas.dcIdn = '10A' ORDER BY estudiantes.Apl1;

//Tratar de Integrar a Notas
SELECT matriculas.eIdnt, estudiantes.Apl1, estudiantes.Apl2, estudiantes.Nmbs, notas.aIdnt, notas.Nprc1, notas.Nprc2, notas.Nprc3, notas.Nprc4, notas.Nfinl FROM matriculas, estudiantes, notas WHERE estudiantes.eIdnt = matriculas.eIdnt AND matriculas.dvIdn = '2007' AND matriculas.dcIdn = '10A' AND
notas.eIdnt = matriculas.eIdnt AND notas.dvIdn = '2007'
ORDER BY estudiantes.Apl1;

//Tratar de Integrar asignaturas
SELECT matriculas.eIdnt, estudiantes.Apl1, estudiantes.Apl2, estudiantes.Nmbs, notas.aIdnt, notas.Nprc1, notas.Nprc2, notas.Nprc3, notas.Nprc4, notas.Nfinl
FROM matriculas, estudiantes, notas, asignaturas
WHERE estudiantes.eIdnt = matriculas.eIdnt AND matriculas.dvIdn = '2007' AND matriculas.dcIdn = '10A' AND
notas.eIdnt = matriculas.eIdnt AND notas.dvIdn = '2007' AND
asignaturas.dvIdn = '2007' AND asignaturas.dcIdn = '10A' AND asignaturas.aIdnt = notas.aIdnt

ORDER BY estudiantes.Apl1;

//Tratar de Integrar DefAreas
SELECT matriculas.eIdnt, estudiantes.Apl1, estudiantes.Apl2, estudiantes.Nmbs, notas.aIdnt, notas.Nprc1, DefAreas.Area
FROM matriculas, estudiantes, notas, asignaturas, DefAreas
WHERE estudiantes.eIdnt = matriculas.eIdnt AND matriculas.dvIdn = '2007' AND matriculas.dcIdn = '10A' AND
notas.eIdnt = matriculas.eIdnt AND notas.dvIdn = '2007' AND
asignaturas.dvIdn = '2007' AND asignaturas.dcIdn = '10A' AND asignaturas.aIdnt = notas.aIdnt AND
DefAreas.daIdn = asignaturas.daIdn
ORDER BY estudiantes.Apl1, DefAreas.daIdn;

//Tratar de Integrar DefCursos
SELECT DefCursos.Crso, matriculas.eIdnt, estudiantes.Apl1, estudiantes.Apl2, estudiantes.Nmbs, notas.aIdnt, notas.Nprc1, DefAreas.Area
FROM DefCursos, matriculas, estudiantes, notas, asignaturas, DefAreas
WHERE DefCursos.dcIdn = matriculas.dcIdn AND estudiantes.eIdnt = matriculas.eIdnt AND matriculas.dvIdn = '2007' AND matriculas.dcIdn = '10A' AND
notas.eIdnt = matriculas.eIdnt AND notas.dvIdn = '2007' AND
asignaturas.dvIdn = '2007' AND asignaturas.dcIdn = '10A' AND asignaturas.aIdnt = notas.aIdnt AND
DefAreas.daIdn = asignaturas.daIdn
ORDER BY estudiantes.Apl1, DefAreas.daIdn;

//Tratar de Integrar Tutores
SELECT DefCursos.Crso, matriculas.eIdnt, estudiantes.Apl1, estudiantes.Apl2, estudiantes.Nmbs, notas.aIdnt, notas.Nprc1, DefAreas.Area
FROM DefCursos, matriculas, estudiantes, notas, asignaturas, DefAreas, tutores
WHERE DefCursos.dcIdn = matriculas.dcIdn AND estudiantes.eIdnt = matriculas.eIdnt AND matriculas.dvIdn = '2007' AND matriculas.dcIdn = '10A' AND
notas.eIdnt = matriculas.eIdnt AND notas.dvIdn = '2007' AND
asignaturas.dvIdn = '2007' AND asignaturas.dcIdn = '10A' AND asignaturas.aIdnt = notas.aIdnt AND
DefAreas.daIdn = asignaturas.daIdn AND
tutores.dcIdn = '10A' AND tutores.dvIdn = '2007'
ORDER BY estudiantes.Apl1, DefAreas.daIdn;

//Tratar de Integrar Docentes
SELECT DefCursos.Crso, docentes.Apl1, docentes.Nmbs, matriculas.eIdnt, estudiantes.Apl1, estudiantes.Nmbs, notas.aIdnt, notas.Nprc1, DefAreas.Area
FROM DefCursos, matriculas, estudiantes, notas, asignaturas, DefAreas, tutores, docentes
WHERE
DefCursos.dcIdn = matriculas.dcIdn AND estudiantes.eIdnt = matriculas.eIdnt AND matriculas.dvIdn = '2007' AND matriculas.dcIdn = '10A' AND
notas.eIdnt = matriculas.eIdnt AND notas.dvIdn = '2007' AND
asignaturas.dvIdn = '2007' AND asignaturas.dcIdn = '10A' AND asignaturas.aIdnt = notas.aIdnt AND
DefAreas.daIdn = asignaturas.daIdn AND
tutores.dcIdn = '10A' AND tutores.dvIdn = '2007' AND
docentes.dIdnt = tutores.dIdnt
ORDER BY estudiantes.Apl1, DefAreas.daIdn;

//Organizar Sentencias y Agregar Campos Faltantes
SELECT DefCursos.Crso, DefCursos.ICrt, DefCursos.Secc, DefCursos.Jorn, docentes.Apl1, docentes.Apl2, docentes.Nmbs, estudiantes.eIdnt, estudiantes.Apl1, estudiantes.Apl2, estudiantes.Nmbs, notas.aIdnt, notas.Nprc1, notas.Nprc2, notas.Nprc3, notas.Nprc4, notas.Nfinl, DefAreas.Area
FROM DefCursos, matriculas, estudiantes, notas, asignaturas, DefAreas, tutores, docentes
WHERE
DefCursos.dcIdn = matriculas.dcIdn AND estudiantes.eIdnt = matriculas.eIdnt AND matriculas.dvIdn = '2007' AND matriculas.dcIdn = '10A' AND notas.eIdnt = matriculas.eIdnt AND notas.dvIdn = '2007' AND
asignaturas.dvIdn = '2007' AND asignaturas.dcIdn = '10A' AND asignaturas.aIdnt = notas.aIdnt AND
DefAreas.daIdn = asignaturas.daIdn AND tutores.dcIdn = '10A' AND tutores.dvIdn = '2007' AND
docentes.dIdnt = tutores.dIdnt ORDER BY estudiantes.Apl1, DefAreas.daIdn;

//Declaración única de Valores constantes
SELECT DefCursos.Crso, DefCursos.ICrt, DefCursos.Secc, DefCursos.Jorn, docentes.Apl1, docentes.Apl2, docentes.Nmbs, estudiantes.eIdnt, estudiantes.Apl1, estudiantes.Apl2, estudiantes.Nmbs, notas.aIdnt, notas.Nprc1, notas.Nprc2, notas.Nprc3, notas.Nprc4, notas.Nfinl, DefAreas.Area
FROM DefCursos, matriculas, estudiantes, notas, asignaturas, DefAreas, tutores, docentes
WHERE
DefCursos.dcIdn = matriculas.dcIdn AND estudiantes.eIdnt = matriculas.eIdnt AND notas.eIdnt = matriculas.eIdnt AND notas.dvIdn = matriculas.dvIdn AND
asignaturas.dvIdn = matriculas.dvIdn AND asignaturas.dcIdn = matriculas.dcIdn AND asignaturas.aIdnt = notas.aIdnt AND
DefAreas.daIdn = asignaturas.daIdn AND tutores.dcIdn = matriculas.dcIdn AND tutores.dvIdn = matriculas.dvIdn AND
docentes.dIdnt = tutores.dIdnt AND matriculas.dvIdn = '2007' AND matriculas.dcIdn = '10A' ORDER BY estudiantes.Apl1, DefAreas.daIdn;


La zona horaria es GMT -6. Ahora son las 11:56.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.