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

Ayuda avanzada...

Estas en el tema de Ayuda avanzada... en el foro de Mysql en Foros del Web. hola amigos necesito lo siguiente es un programa para gestion de partidas de tenis. pero eso no importa tablas: notas id_nota // id_prueba // id_estu ...
  #1 (permalink)  
Antiguo 30/07/2008, 00:39
Avatar de jamesjara  
Fecha de Ingreso: mayo-2008
Ubicación: san jose
Mensajes: 449
Antigüedad: 16 años
Puntos: 7
Ayuda avanzada...

hola amigos necesito lo siguiente
es un programa para gestion de partidas de tenis. pero eso no importa

tablas:
notas
id_nota // id_prueba // id_estu // nota
prueba
id_prueba // id_curso // id_periodo // id_materia // id_nombre
estudiante
id_estu // n_estudiante
estu_relacion_curso
id_rela // id_estu // curso // año

OBJETIVO
Necesito mostrar una tabla donde salgan todos los estudiantes registrados en un curso TABLA:estu_relacion_curso pero a su ves, si hay alguno registrado en laTABLA:NOTAS muestre su nota correspondiente, en caso contrario solo muestre el estudiante mas su id., MUY IMPORTANTE: SOLOS LOS ALUMNOS REGISTRADOS EN DICHO CURSO
PROBLEMA
No se como hacer esa consulta tan rara, lei que con un joiner pero no los entendi. porfavor si me pueden dar la consulta entera para meterla en mysql y provar.... GRACIAS DE VERDAD Q NO ES ALGO FACIL
__________________
X7CLOUD El webservice latino!
Compatible
con mysql,sql,sqlitte.
Compatible con extjs , sencha , smargwt, Gwt , Jquery , Charts, Streaming.
  #2 (permalink)  
Antiguo 30/07/2008, 03:02
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Ayuda avanzada...

Código:
Select estudiante.id_estu,
           studiante.n_estudiante,
           estu_relacion_curso.curso,
           estu_relacion_curso.año,
           prueba.id_periodo,
           prueba.id_materia,
           prueba.id_nombre,
           notas.id_prueba,
           notas.nota
SELECT FROM (estudiante INNER JOIN estu_relacion_curso
                ON estudiante.id_estu=estu_relacion_curso.id_estu)
                         LEFT JOIN (prueba INNER JOIN notas
                                                 ON prueba.id_prueba=notas.id_prueba)
                         ON estudiante.id_estu=notas.id_estu
WHERE estu_relacion_curs.ocurso=Aquí el curso concreto 
     AND estu_relacion_curs.año=Aquí año concreto
ORDER BY estudiante.n_estudiante;
Si eliminas la clausula WHERE te darà el mismo resultado para todos los cursos....

Quim
  #3 (permalink)  
Antiguo 30/07/2008, 13:19
Avatar de jamesjara  
Fecha de Ingreso: mayo-2008
Ubicación: san jose
Mensajes: 449
Antigüedad: 16 años
Puntos: 7
Respuesta: Ayuda avanzada...

mmm gracias de vdd oor tomarse el tiempo, pero verdad que tengo que quitar el select antes del from xq sino me da eerroor?

ahh y otra cosa necesito filtrarlo mas bien por curso(ya) y periodo(en vez del año) TABLA:Prueba..COLUMNA: id_periodo

--------Hize esto pero no me sirve en todo caso mejor demela usted que sabe bien
-------------------------------------------------------------------------------------
Código PHP:
Select estudiantes.id_estu,
           
estudiantes.nombre,
           
estu_rela_cur.id_curso,
           
estu_rela_cur.año,
           
pruebas.id_perio,
           
pruebas.id_materia,
           
pruebas.n_prueba,
           
notas.id_prueba,
           
notas.nota
FROM 
(estudiantes INNER JOIN estu_rela_cur
 ON estudiantes
.id_estu estu_rela_cur.id_estu)
  
LEFT JOIN (pruebas INNER JOIN notas
   ON pruebas
.id_prueba notas.id_prueba)
ON estudiantes.id_estu notas.id_estu
WHERE estu_rela_cur
.id_curso33

//****este codigo LO METI PARA FILTRAR POR PERIODO, PERO NO ME SIRVE XQ SOLO ME TRAE LOS REGISTROS GUARDADOS ESTRICTAMENTE EN LA TABLA NOTA

and  pruebas.id_perio 1



ORDER BY estudiantes
.nombre
__________________
X7CLOUD El webservice latino!
Compatible
con mysql,sql,sqlitte.
Compatible con extjs , sencha , smargwt, Gwt , Jquery , Charts, Streaming.

Última edición por jamesjara; 30/07/2008 a las 14:11
  #4 (permalink)  
Antiguo 31/07/2008, 00:41
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Ayuda avanzada...

Te ha funcionado finalmente o no?

Quim
  #5 (permalink)  
Antiguo 31/07/2008, 14:20
Avatar de jamesjara  
Fecha de Ingreso: mayo-2008
Ubicación: san jose
Mensajes: 449
Antigüedad: 16 años
Puntos: 7
Respuesta: Ayuda avanzada...

No Quim esque mire es el objetivo de arriba pero en ves de filtrarlo por a;o que sea por id_perio, cada curso ejemplo: Nivel avanzado de resistencia(CURSO), este esta dividido en 3 periodos(PERIODO), la consulta que usted me dio me filtra por CURSO PERO NO POR PERIODO, NECESITO QUE LO FILTRE POR PERIODO TAMBIEN, ME PUEDES HACER ESO.

TE CUENTO QUE YO TRATE METIENDO and pruebas.id_perio = 1 PERO SI HAGO ESO, ENTONCES ME MUESTRA SOLO LOS ESTUDIANTES CON NOTA REGISTRADA, y bueno ya sabes que eso no es lo que se quiere. entonces espero tu ayuda.. le agradesco de antemano por ayudarme!
__________________
X7CLOUD El webservice latino!
Compatible
con mysql,sql,sqlitte.
Compatible con extjs , sencha , smargwt, Gwt , Jquery , Charts, Streaming.
  #6 (permalink)  
Antiguo 01/08/2008, 01:41
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Ayuda avanzada...

and (pruebas.id_perio = 1 or pruebas.id_perio is null)

Así te mostrará todos los estudiantes tengan nota o no. Los parentesis son necesarios!!!
Al restringir por pruebas.id_perio a 1 solo te muestra los que tinen 1 por tanto nota, si ademas permites los nulos te mostrarà los que tengan nota en ese periodo y los que no tengan ninguna nota....


Es eso?

Quim

Nota: Si hay estudiantes con mas de una nota del periodo elegido saldran repetidos...
  #7 (permalink)  
Antiguo 05/08/2008, 00:26
Avatar de jamesjara  
Fecha de Ingreso: mayo-2008
Ubicación: san jose
Mensajes: 449
Antigüedad: 16 años
Puntos: 7
Respuesta: Ayuda avanzada...

Si ya sirvio gracias
__________________
X7CLOUD El webservice latino!
Compatible
con mysql,sql,sqlitte.
Compatible con extjs , sencha , smargwt, Gwt , Jquery , Charts, Streaming.
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 16:11.