elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Ayuda con Consulta.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 3 4 5 6 [7] 8 Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con Consulta.  (Leído 26,716 veces)
royerphpmysql

Desconectado Desconectado

Mensajes: 64


que rico tequila.


Ver Perfil
Re: Ayuda con Consulta.
« Respuesta #60 en: 24 Abril 2010, 00:33 »

hola gente buen dia com estan.
me surgio una gran duda y pido de su asesoria, tengo la siguiente consulta.

Código
  1.  
  2. $res=mysql_query("SELECT k.fechacalif, a.apellidos, a.nombres AS nombreAlumno, m.materia AS nombreMateria, IFNULL( k.calif1A, 'NO CALIFICADO' ) AS calif1A
  3. FROM materias m
  4. LEFT OUTER JOIN kardex k ON m.codigomateria = k.codigomateria
  5. LEFT OUTER JOIN alumnos a ON k.matricula = a.matricula
  6. WHERE k.matricula =".$_POST['matricula']." OR k.matricula IS NULL");
  7.  

y esta me da el siguiente resultado.

El alumno PEPE TOÑO con Matricula: 91901014431
Tiene las Siguientes Calificaciones

Materia                                 Calificacion                    Fecha Calificacion
INGLES I                                   89                               01/01/2010 
MATEMATICAS I                         78                                02/01/2010 
 
TALLER DE REDACCION I           NO CALIFICADO   
 
METODOLOGIA DE LA LECTURA  NO CALIFICADO   
 
HISTORIA MODERNA                   NO CALIFICADO

pero si consulto un alumno diferente no me muestra las materias que ya califico el otro a que se debera?

El alumno PANCHO PEREZ con Matricula: 91901014429
Tiene las Siguientes Calificaciones

Materia                                        Calificacion                 Fecha Calificacion
TALLER DE REDACCION I             NO CALIFICADO   
METODOLOGIA DE LA LECTURA     NO CALIFICADO
HISTORIA MODERNA                     NO CALIFICADO   

ojala puedan darme una idea. muchas gracias

el codigo que estoy aplicando es el siguiente.

Código
  1. $res=mysql_query("SELECT k.fechacalif, a.apellidos, a.nombres AS nombreAlumno, m.materia AS nombreMateria, IFNULL( k.calif1A, 'NO CALIFICADO' ) AS calif1A
  2. FROM materias m
  3. LEFT OUTER JOIN kardex k ON m.codigomateria = k.codigomateria
  4. LEFT OUTER JOIN alumnos a ON k.matricula = a.matricula
  5. WHERE k.matricula =".$_POST['matricula']." OR k.matricula IS NULL");
  6.  
  7.  
  8. $row=mysql_fetch_array($res); //hago esto, para poder tomar el nombre antes de entrar al WHILE.
  9.  
  10. echo '<tr>';
  11.    echo '<td><b>';
  12.    echo '</td></b>';
  13. echo '</tr>';
  14. echo "<ul> </ul>";
  15.    echo "<td><div align=left>El alumno <b>".$row['nombreAlumno']." ".$row['apellidos']."</b>  con  Matricula: <b>".$_POST[matricula];
  16.    echo "<td><div align=left></b>Tiene las Siguientes Calificaciones </a></div></td></br>";
  17. echo '<table>';
  18. echo '<tr>';
  19. echo '<td><div align=center><b>Materia</b></td><td><b>Calificacion</b><td><b>Fecha Calificacion</b></td>';
  20. echo '</tr>';
  21. echo '<tr>';
  22. echo '<td><div align=center>'.$row['nombreMateria'].'</td><td><div align=center>'.$row['calif1A'].'</td><td><div align=center>'.$row['fechacalif'].'</td>';
  23. echo '<td>';
  24. while($row=mysql_fetch_array($res))
  25. {
  26. echo '<tr>';
  27. echo '<td><div align=center>'.$row['nombreMateria'].'</td><td><div align=center>'.$row['calif1A'].'</td><td><div align=center>'.$row['fechacalif'].'</td></div>';
  28. echo '</tr>';
  29. echo '<td>';
  30. }
  31. echo '</table>';
  32.  

gracias por su ayuda




En línea

Skeletron


Desconectado Desconectado

Mensajes: 1.731


A long way to go


Ver Perfil WWW
Re: Ayuda con Consulta.
« Respuesta #61 en: 24 Abril 2010, 00:42 »

Y estas seguro quue ya calificó?


En línea

royerphpmysql

Desconectado Desconectado

Mensajes: 64


que rico tequila.


Ver Perfil
Re: Ayuda con Consulta.
« Respuesta #62 en: 24 Abril 2010, 02:15 »

el primero califico ingles y matematicas y el segundo todavia no. si se las califico aparecen pero si no se las pongo no aparecen y deberia de aparecer como no calificado..
En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Ayuda con Consulta.
« Respuesta #63 en: 25 Abril 2010, 01:24 »

Entonces tu problema literalmente es... que si un alumno tiene materias con calificacion y el otro alumno en esas mismas materias no tiene ninguna calificacion... entonces las del segundo alumno no se muestran en pantalla???  :rolleyes:

Espero no sea mucho pedir pero... podrias colocar aca un ejemplo de los campos de las 2 tablas que estas usando para hacer tus JOINES   ;)  algo asi tipo:

'Tengo 2 tablas, la primera tiene los siguientes campos : '

tabla1
alumnos,
matricula,
fecha,
materia


tabla2
matricula,
materia


Aunque creo tu problema (si es lo que te pregunte inicialmente) estaria aqui:

Citar
IFNULL( k.calif1A, 'NO CALIFICADO' )

Porque ahi dices si calificacion tiene un valor NULL retorname 'No calificado' bien perfecto.. ahora que pasa, estas haciendo 1 JOIN de 2 tablas yo no conozco las estructuras de las 2 tablas (Por eso te pido una demostracion) pero, que pasa cuando 2 campos en ambas tablas se comparan y uno tiene valor no nulo sin embargo el otro si tiene un valor nulo??? Tu unica condicion es que cuando calificacion sea NULL retorne 'NO CALIFICADO' pero para que esto se cumpla... ambos campos comparados deben tener valor NULL, lo que si podrias intentar completar el IF con algo tipo:

IF(k.calif1A IS NULL, 'NO CALIFICA', k.califi1A)

O sea si uno de los valores es Nulo 'no califica' de lo contrario pues tirame el valor que existe. Pero me puedo equivocar, no conozco la estructura de las tablas... solo estoy ofreciendo un estimado acorde a lo que veo.

 :P

« Última modificación: 25 Abril 2010, 01:40 por ^Tifa^ » En línea

royerphpmysql

Desconectado Desconectado

Mensajes: 64


que rico tequila.


Ver Perfil
Re: Ayuda con Consulta.
« Respuesta #64 en: 25 Abril 2010, 03:29 »

HOLA TIFA muchas gracias por tu ayuda, aqui te muestro las estructuras de las tablas.
 son, alumnos, kardex y materias.

Código
  1. mysql> describe alumnos;
  2. +--------------+-------------+------+-----+---------+----------------+
  3. | Field        | Type        | Null | Key | Default | Extra          |
  4. +--------------+-------------+------+-----+---------+----------------+
  5. | id           | int(11)     | NO   | PRI | NULL    | auto_increment |
  6. | matricula    | bigint(14)  | NO   |     | NULL    |                |
  7. | nombres      | varchar(50) | NO   |     | NULL    |                |
  8. | apellidos    | varchar(50) | NO   |     | NULL    |                |
  9. | carrera      | varchar(40) | NO   |     | NULL    |                |
  10. | fechaingreso | date        | NO   |     | NULL    |                |
  11. | turno        | varchar(20) | NO   |     | NULL    |                |
  12. | grupo        | varchar(10) | NO   |     | NULL    |                |
  13. | salon        | int(11)     | NO   |     | NULL    |                |
  14. +--------------+-------------+------+-----+---------+----------------+
  15. 9 rows in set (0.00 sec)
  16.  
  17. mysql> describe kardex;
  18. +-------------------+---------------------+------+-----+---------+------------
  19. --+
  20. | Field             | Type                | Null | Key | Default | Extra
  21.  |
  22. +-------------------+---------------------+------+-----+---------+------------
  23. --+
  24. | id                | int(10) unsigned    | NO   | PRI | NULL    | auto_increm
  25. t |
  26. | matricula         | bigint(14) unsigned | NO   |     | NULL    |
  27.  |
  28. | tetramestre       | int(10) unsigned    | NO   |     | NULL    |
  29.  |
  30. | materia           | varchar(45)         | YES  |     | NULL    |
  31.  |
  32. | codigomateria     | varchar(10)         | NO   |     | NULL    |
  33.  |
  34. | catedratico       | varchar(80)         | NO   |     | NULL    |
  35.  |
  36. | codigocatedratico | varchar(10)         | NO   |     | NULL    |
  37.  |
  38. | calif1A           | int(10) unsigned    | NO   |     | NULL    |
  39.  |
  40. | fechacalif        | varchar(10)         | NO   |     | NULL    |
  41.  |
  42. | calif2A           | int(10) unsigned    | YES  |     | NULL    |
  43.  |
  44. | fechasegundaop    | varchar(10)         | YES  |     | NULL    |
  45.  |
  46. | califrevalidacion | int(10) unsigned    | YES  |     | NULL    |
  47.  |
  48. | fechasegopesp     | varchar(10)         | YES  |     | NULL    |
  49.  |
  50. | califrecuperacion | int(10) unsigned    | YES  |     | NULL    |
  51.  |
  52. | fechacalifrec     | varchar(10)         | YES  |     | NULL    |
  53.  |
  54. | califespecial     | int(10) unsigned    | YES  |     | NULL    |
  55.  |
  56. | fechacalifesp     | varchar(10)         | YES  |     | NULL    |
  57.  |
  58. +-------------------+---------------------+------+-----+---------+------------
  59. --+
  60. 17 rows in set (0.02 sec)
  61.  
  62. mysql> describe materias;
  63. +-------------------+------------------+------+-----+---------+-------+
  64. | Field             | Type             | Null | Key | Default | Extra |
  65. +-------------------+------------------+------+-----+---------+-------+
  66. | codigomateria     | varchar(10)      | NO   | PRI | NULL    |       |
  67. | materia           | varchar(255)     | NO   |     | NULL    |       |
  68. | carrera           | varchar(3)       | NO   |     | NULL    |       |
  69. | tetra             | int(10) unsigned | NO   |     | NULL    |       |
  70. | codigocatedratico | varchar(10)      | NO   |     | NULL    |       |
  71. +-------------------+------------------+------+-----+---------+-------+
  72. 5 rows in set (0.00 sec)
  73.  
  74. mysql>
  75.  
  76.  

gracias por tu valioso apoyo..

rogelio
En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Ayuda con Consulta.
« Respuesta #65 en: 25 Abril 2010, 20:55 »

Unos puntitos.

Acorde a los datos que estas solicitando, no necesitas usar un JOIN con las 3 tablas.... de hecho con 2 tablas es mas que suficiente (Para este caso).  :rolleyes:  porque lo digo??? porque tienes el campo materia dentro de la tabla Kardex, que asumo se relaciona en ese mismo campo con la tabla Materias  y puesto que la relacion posee el mismo valor... y es el unico campo que referencias de esta tabla en tu consulta SQL... felizmente puedes descartar usar esta tabla en tu consulta SQL, y sencillamente hacer el JOIN con las tablas Kardex y Alumnos, obteniendo el campo materia de la tabla Kardex.

Otra cosita, ten muy en claro el tamanio (espacio) que ocupan los tipos de datos, cuidado con esos tipos de datos que leo tipo bigint en un campo de matricula... y cuidado con el almacenamiento de los varchar que veo hasta 255 cuando apenas vas a guardar algo que a lo maximo ocuparia 50 caracteres.

Ten en cuenta que tu consulta SQL esta buscando la nota de 1 sola persona a la vez.. o donde su matricula sea nula

Te comento que he recreado las tablas que tienes.... con los siguientes datos:

Código
  1.  
  2. mysql> SELECT * FROM kardex;                                                                                                        +------+-----------+-------------+--------------+---------------+                                                                  
  3. | id   | matricula | materia     | calificacion | codigomateria |                                                                  
  4. +------+-----------+-------------+--------------+---------------+
  5. |    1 |       200 | matematica  |           80 | matematica    |
  6. |    2 |       300 | lenguaje    |         NULL | lenguaje      |
  7. |    3 |       400 | historia    |           70 | historia      |
  8. |    4 |       500 | matematicax |         NULL | matematicax   |
  9. |    5 |       600 | lenguajex   |           87 | lenguajex     |
  10. +------+-----------+-------------+--------------+---------------+
  11. 5 ROWS IN SET (0.00 sec)
  12.  
  13. mysql> SELECT * FROM alumnos;
  14. +------+-----------+---------+-----------+--------------+
  15. | id   | matricula | nombres | apellidos | fechaingreso |
  16. +------+-----------+---------+-----------+--------------+
  17. |    1 |       200 | Jose    | Perez     | NULL         |
  18. |    2 |       300 | Mario   | Lopez     | NULL         |
  19. |    3 |       400 | Gloria  | Mar       | NULL         |
  20. |    4 |      NULL | Pepe    | Martinez  | NULL         |
  21. |    5 |      NULL | Carlos  | Manuel    | NULL         |
  22. +------+-----------+---------+-----------+--------------+
  23. 5 ROWS IN SET (0.00 sec)
  24.  
  25.  

Usando como modelo tu consulta SQL, y me aparecen perfectamente los datos solicitados (La unica diferencia es que aca obvio
usar la tercera tabla Materias, pero luego es lo mismo):

Código
  1.  
  2. mysql> SELECT a.apellidos, a.nombres AS nombreAlumno, k.materia AS nombreMateria, IF( k.calificacion IS NULL, 'NO CALIFICADO', k.calificacion) AS Califica FROM kardex k LEFT JOIN alumnos a ON k.matricula = a.matricula WHERE a.matricula = 300 OR a.matricula IS NULL;                                                                                                                                  
  3. +-----------+--------------+---------------+---------------+                                                                        
  4. | apellidos | nombreAlumno | nombreMateria | Califica      |                                                                        
  5. +-----------+--------------+---------------+---------------+                                                                        
  6. | Lopez     | Mario        | lenguaje      | NO CALIFICADO |                                                                        
  7. | NULL      | NULL         | matematicax   | NO CALIFICADO |                                                                        
  8. | NULL      | NULL         | lenguajex     | 87            |                                                                        
  9. +-----------+--------------+---------------+---------------+                                                                        
  10. 3 ROWS IN SET (0.00 sec)    
  11.  
  12. mysql> SELECT a.apellidos, a.nombres AS nombreAlumno, k.materia AS nombreMateria, IF( k.calificacion IS NULL, 'NO CALIFICADO', k.calificacion) AS Califica FROM kardex k LEFT JOIN alumnos a ON k.matricula = a.matricula WHERE a.matricula = 200 OR a.matricula IS NULL;                                                                                                                                  
  13. +-----------+--------------+---------------+---------------+                                                                        
  14. | apellidos | nombreAlumno | nombreMateria | Califica      |                                                                        
  15. +-----------+--------------+---------------+---------------+                                                                        
  16. | Perez     | Jose         | matematica    | 80            |                                                                        
  17. | NULL      | NULL         | matematicax   | NO CALIFICADO |                                                                        
  18. | NULL      | NULL         | lenguajex     | 87            |                                                                        
  19. +-----------+--------------+---------------+---------------+                                                                        
  20. 3 ROWS IN SET (0.00 sec)                            
  21.  
  22.  

Podrias publicar aca que valores en ambas tablas o en las 3 tablas si todavia quieres continuar usando los JOINS con las 3. Que valores tienen ambos alumnos en las 3 o 2 tablas aca...
En línea

royerphpmysql

Desconectado Desconectado

Mensajes: 64


que rico tequila.


Ver Perfil
Re: Ayuda con Consulta.
« Respuesta #66 en: 26 Abril 2010, 01:31 »

tifa disculpa lo que tu me pones esta perfecto pero  creo que no me di a entender bien.

lo que sucede es que en tabla materias tengo almacenadas 33 materias y son las que quiero imprimir en la consulta de cualquier alumno siempre.

en la primer consulta me imprime bien las 33 materias que es lo que quiero.
pero si consulto otro alumno como a PANCHO PEREZ no me muestra las 33 solo 31

en esta consulta me muestra las 33 materias de tabla materias con sus respectivas calificadas..

El alumno PEPE TOÑO con Matricula: 91901014431
Tiene las Siguientes Calificaciones

Materia                                 Calificacion                    Fecha Calificacion
INGLES I                                   89                               01/01/2010 
MATEMATICAS I                         78                                02/01/2010 
 
TALLER DE REDACCION I           NO CALIFICADO   
 
METODOLOGIA DE LA LECTURA  NO CALIFICADO   
 
HISTORIA MODERNA                   NO CALIFICADO

pero en esta segunda consulta no me muestra las 33 materias de la tabla materias porque el alumno anterior ya estan calificadas
me muestra lo siguiente..

El alumno PANCHO PEREZ con Matricula: 91901014429
Tiene las Siguientes Calificaciones

Materia                                        Calificacion                 Fecha Calificacion
TALLER DE REDACCION I             NO CALIFICADO   
METODOLOGIA DE LA LECTURA     NO CALIFICADO
HISTORIA MODERNA                     NO CALIFICADO

no se si me explique.. PANCHO PEREZ me muestra 31 materias de la tabla materias y me faltan 2 materias mas que deberia de mostrar de la tabla materias independientemente si fueron calificadas por otro alumno..

gracias. tifa

En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Ayuda con Consulta.
« Respuesta #67 en: 26 Abril 2010, 01:54 »

Yo te entendi perfectamente  ;)  intentas decirme que hay 3 materias que no se presentan en pantalla porque tienen valores NULL pero cuando tienen valor real asignado si se presentan en pantalla... de lo contrario no  :P

Te agradeceria si me mostrases entonces, en las 3 tablas en cuestion que valores le corresponden a estos 2 alumnos para yo tener una guia mejor del asunto.

En línea

royerphpmysql

Desconectado Desconectado

Mensajes: 64


que rico tequila.


Ver Perfil
Re: Ayuda con Consulta.
« Respuesta #68 en: 26 Abril 2010, 02:08 »

en la tabla materias tengo almacenado lo siguiente:
Código
  1.  
  2. mysql> select * from materias;
  3. +---------------+--------------------------------+---------+-------+------------
  4. -------+
  5. | codigomateria | materia                        | carrera | tetra | codigocated
  6. ratico |
  7. +---------------+--------------------------------+---------+-------+------------
  8. -------+
  9. | 10            | INGLES I                       |         |     0 | C1
  10.       |
  11. | 11            | MATEMATICAS I                  |         |     0 | C1
  12.       |
  13. | 12            | TALLER DE REDACCION I          |         |     0 | C1
  14.       |
  15. | 13            | METODOLOGIA DE LA LECTURA      |         |     0 | C1
  16.       |
  17. | 14            | HISTORIA MODERNA   |         |     0 | C1
  18.  
  19.  

es un listsado de 33 materias.


al consultar cada alumno me debe de mostrar las 33 materias de esta tabla.
listado como aqui.

El alumno PEPE TOÑO con Matricula: 91901014431
Tiene las Siguientes Calificaciones

Materia                                 Calificacion                    Fecha Calificacion
INGLES I                                   89                               01/01/2010 
MATEMATICAS I                         78                                02/01/2010 
 
TALLER DE REDACCION I           NO CALIFICADO   
 
METODOLOGIA DE LA LECTURA  NO CALIFICADO   
 
HISTORIA MODERNA                   NO CALIFICADO

pero si yo quiero consultar un alumno diferente y que no esta calificado como este que tiene 2 me muestra lo siguiente.

El alumno PANCHO PEREZ con Matricula: 91901014429
Tiene las Siguientes Calificaciones

Materia                                        Calificacion                 Fecha Calificacion
TALLER DE REDACCION I             NO CALIFICADO   
METODOLOGIA DE LA LECTURA     NO CALIFICADO
HISTORIA MODERNA                     NO CALIFICADO


es decir... el alumno que no ha calificado nada me esta omitiendo las primeras 2 materias que serian ingles y español.. y solo me muestra eso... espeor entenderme un pquito mejor.. ;)
En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Ayuda con Consulta.
« Respuesta #69 en: 26 Abril 2010, 04:04 »

Para los que no se enteran (y por si le pasa a alguien vamos  :rolleyes:)

Royer me envio la muestra de sus 3 tablas por MP (protegiendo sus datos al acceso publico esta en su derecho  ;) ) y bueno, resulta ser que los datos que el quiere sacar existen en la Tabla Alumnos y la tabla Materias pero no tienen ningun registro en Kardex  ;)  (Solo de los alumnos que el quiere sacar y les pasa esto). Por lo que le respondi:

Royer me aclaraste mejor ahora  ;-)  entonces el alumno que NO tiene ningun registro en la tabla Kardex ... hay es que esta tu problema chico  :rolleyes:

Mira agregue un usuario extra a la tabla Alumnos:

Código
  1.  
  2. mysql> SELECT * FROM alumnos;
  3. +------+-----------+---------+-----------+---------+--------------+-------+--------+-------+
  4. | id   | matricula | nombres | apellidos | carrera | fechaingreso | turno | grupo  | salon |
  5. +------+-----------+---------+-----------+---------+--------------+-------+--------+-------+
  6. |    6 |       919 | PEPE    | TONO      | PREPA   | 0000-00-00   | TARDE | GRUPO1 |     1 |
  7. |    7 |       212 | PANCHO  | PEREZ     | PREPA   | 0000-00-00   | TARDE | GRUPO2 |     1 |
  8. |    9 |       100 | MARIA   | LOPEZ     | NULL    | NULL         | TARDE | GRUPO1 |     1 |
  9. +------+-----------+---------+-----------+---------+--------------+-------+--------+-------+
  10.  
  11.  
  12.  

Pero no le agregue absolutamente nada en Kardex a este nuevo usuario (QUe es MARIA LOPEZ):

Código
  1.  
  2. mysql> SELECT * FROM kardex;
  3. +------+-----------+-------------+-------------+---------------+---------+------------+
  4. | id   | matricula | tetramestre | materia     | codigomateria | calif1A | fechacalif |
  5. +------+-----------+-------------+-------------+---------------+---------+------------+
  6. |    6 |       919 | 1           | INGLES I    |            10 |      90 | 2010-10-20 |
  7. |    6 |       919 | 1           | MATEMATICAS |            11 |    NULL | 2010-10-20 |
  8. |    7 |       212 | 1           | INGLES I    |            10 |      88 | 2010-10-20 |
  9. |    7 |       212 | 1           | MATEMATICAS |            11 |    NULL | 2010-10-20 |
  10. |    8 |       818 | 1           | MATEMATICAS |            11 |    NULL | 2010-09-20 |
  11. |    8 |       818 | 1           | INGLES I    |            10 |    NULL | 2010-09-20 |
  12. +------+-----------+-------------+-------------+---------------+---------+------------+
  13. 6 ROWS IN SET (0.00 sec)
  14.  
  15.  

Ahora hago tu magica consult a a MARIA  y.....

Código
  1.  
  2. mysql> SELECT k.fechacalif, a.apellidos, a.nombres AS nombreAlumno, m.materia AS nombreMateria, ifnull( k.calif1A, 'NO CALIFICADO') AS Materia FROM materias m LEFT OUTER JOIN kardex k ON m.codigomateria = k.codigomateria LEFT OUTER JOIN alumnos a ON k.matricula = a.matricula WHERE k.matricula = 100 OR k.matricula IS NULL;
  3. +------------+-----------+--------------+---------------------------+---------------+
  4. | fechacalif | apellidos | nombreAlumno | nombreMateria             | Materia       |
  5. +------------+-----------+--------------+---------------------------+---------------+
  6. | NULL       | NULL      | NULL         | taller de redaccion I     | NO CALIFICADO |
  7. | NULL       | NULL      | NULL         | metodologia de la lectura | NO CALIFICADO |
  8. | NULL       | NULL      | NULL         | historia moderna          | NO CALIFICADO |
  9. +------------+-----------+--------------+---------------------------+---------------+
  10.  
  11.  

Bingo  ;-)

Ahora quieres saber porque ocurrio esto??? Pues precisamente chico porque MARIA solo existe en la tabla Alumnos y Materias  ;)  sin embargo tu haces la comparaciones con Kardex.. pero como esta alumna NO tiene nada en Kardex... como va a retonarte las calificaciones que se reflejan en la tabla Kardex???? Si no existen datos de ningun tipo de ella en Kardex???? Sin embargo si existen datos de ella en la tabla Materia y Alumnos... Recuerdate que el campo calif1A esta en la tabla Kardex y es ese campo o sea mira tu consulta SQL dice:

Citar
m.codigomateria = k.codigomateria

O sea las materias que esten en la tabla Kardex que concuerden con las materias que esten en la tabla Materias... pero si tu no tienes registros de algun alumno en la tabla Kardex... como quieres que te retorne las materias que estan ahi dentro???

O sea ya que solamente tienes datos en la tabla Alumnos y Materias para el caso mostrado tu comparacion de tu consulta dice:

Citar
eft outer join alumnos a on k.matricula = a.matricula

Pero... k.matricula pertenece a la tabla Kardex no??? y si Kardex no tiene registros aca para dicho alumno... que va a retornarte para la calificacion??
Nada (Que es lo que esta pasando).

Tendras que agregar 1 campo extra en la tabla Materias para que puedas relacionar las materias con alumnos
sin que estas esten obligatoriamente en Kardex... o registrar datos en la tabla Kardex para todos los alumnos aunque el valor
sea null.

 :D
En línea

Páginas: 1 2 3 4 5 6 [7] 8 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con una consulta compleja
Bases de Datos
luison 0 1,101 Último mensaje 17 Mayo 2011, 17:29
por luison
ayuda con consulta sql
Bases de Datos
Mr.Blue 4 3,035 Último mensaje 16 Septiembre 2011, 23:23
por fran800m
Ayuda con Consulta
PHP
dimitrix 1 1,016 Último mensaje 20 Febrero 2012, 20:16
por HdM
ayuda en consulta
Bases de Datos
elnet 2 1,515 Último mensaje 13 Noviembre 2012, 18:02
por Hadess_inf
ayuda consulta
Dudas Generales
24592 4 1,238 Último mensaje 21 Noviembre 2014, 21:39
por tremolero
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines