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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  Bases de Datos (Moderador: Carloswaldo)
| | | |-+  Ayuda con Consulta.
0 Usuarios y 3 Visitantes 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 34,776 veces)
seba123neo


Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Ayuda con Consulta.
« Respuesta #50 en: 24 Marzo 2010, 17:45 pm »

lo que necesitas es usar lo que se llama LEFT OUTER JOIN, busca en internet para mas informacion de lo que hace, pero es simple o sea te hace la relacion y te deja en null los que no tienen relacion, ya que con un INNER JOIN comun no te los devolveria...y el SELECT principal entonces se deberia hacer a la tabla de Materias.

me cree en MySQL 3 tablas, tratando de imitar las tuyas...no le puse todos los campos que vos tenes, solo los principales...despues vos lo adaptas...hice lo siguiente:

TABLA MATERIAS

Citar
codigomateria              nombre

1                              Matematicas
2                              Fisica
3                              Quimica
4                              Literatura
5                              Geografia
6                              Etica
7                              Filosofia
8                              Computacion




TABLA ALUMNOS

Citar
matricula    nombre

111   Sebastian
222   Tifa
333   Skeletron



TABLA KARDEX

Citar
matricula       codigomateria        calificacion

111                         1                   70   
111                         2                   80   
111                         3                   50   
222                         1                   70   
333                         2                   80   


en este caso solo vamos a filtrar los datos del alumno "Sebastian" de matricula "111"...fijate que solo tiene 3 materias calificadas...de 8 que son en total, el SELECT seria asi:

Código
  1. SELECT a.nombre AS nombreAlumno,m.nombre AS nombreMateria,IFNULL(k.calificacion,'NO CALIFICADO') AS calificacion
  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='111' OR k.matricula IS NULL

y nos retorna:

Citar
Sebastian   Matematicas                             70
Sebastian   Fisica                                       80
Sebastian   Quimica                                   50
NULL           Literatura                                NO CALIFICADO
NULL           Geografia                                NO CALIFICADO
NULL           Etica                                       NO CALIFICADO
NULL           Filosofia                                  NO CALIFICADO
NULL           Computacion                           NO CALIFICADO

saludos.


En línea

royerphpmysql

Desconectado Desconectado

Mensajes: 64


que rico tequila.


Ver Perfil
Re: Ayuda con Consulta.
« Respuesta #51 en: 25 Marzo 2010, 00:42 am »

muchas gracias por tu ayuda SEBA

voy a revisar este dato  FROM materias m porque ya me perdi voy a leer un poco de alias.

saludos


En línea

royerphpmysql

Desconectado Desconectado

Mensajes: 64


que rico tequila.


Ver Perfil
Re: Ayuda con Consulta.
« Respuesta #52 en: 27 Marzo 2010, 03:50 am »

Código
  1. consulta SQL:  
  2.  
  3. SELECT a.nombres AS nombreAlumno, m.materia AS nombreMateria, IFNULL( k.calif1A, 'NO CALIFICADO' ) AS calif1A
  4. FROM materias m
  5. LEFT OUTER JOIN kardex k ON m.codigomateria = k.codigomateria
  6. LEFT OUTER JOIN alumnos a ON k.matricula = a.matricula
  7. WHERE k.matricula = '91901014430'
  8. OR k.matricula IS NULL
  9. LIMIT 0 , 30
  10.  
  11. MySQL ha dicho:  
  12.  
  13. #1267 - #1267 - Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (latin1_spanish_ci,IMPLICIT) for operation '='
  14.  
  15.  
  16.  

Hola Alguien me podria ayudar a descifrar este error.
me marca enmedio de estos 2

LEFT OUTER JOIN kardex k ON m.codigomateria = k.codigomateria
LEFT OUTER JOIN alumnos a ON k.matricula = a.matricula


saludos
« Última modificación: 27 Marzo 2010, 03:52 am por royerphpmysql » En línea

Skeletron


Desconectado Desconectado

Mensajes: 1.731


A long way to go


Ver Perfil WWW
Re: Ayuda con Consulta.
« Respuesta #53 en: 27 Marzo 2010, 04:30 am »

(latin1_swedish_ci,IMPLICIT) and (latin1_spanish_ci,IMPLICIT)

Fijate que seguramente estas haciendo una comparacion entre "swendish" y "spanish"..

Cambia el COTEJAMIENTO de tu columna.. de la que da error..
En línea

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Ayuda con Consulta.
« Respuesta #54 en: 27 Marzo 2010, 05:52 am »

Realmente, la consulta es correcta. Pero, el motor de MySQL ve un problema al querer comparar dos valores (=)  codificados con diferente juego de caracteres.

Para darle solucion a tu problema ya que te seguiras topando con el mismo sino lo cortas de raiz... Hay que indicarle a PHP que realize las consultas siempre con un solo juego de caracteres.

Haz lo siguiente chico...

En tu codigo PHP en la parte donde vayas a trabajar con MySQL edita y haz lo siguiente:

Citar

<?php

@mysql_query("SET collation_connection = latin1_spanish_ci;");
 
$result=mysql_query("bla bla bla



O de paso reiniciar el servidor con ese collation asignado pero nahhh , haz lo anterior dentro de tu PHP  :P
« Última modificación: 27 Marzo 2010, 06:02 am por ^TiFa^ » En línea

seba123neo


Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Ayuda con Consulta.
« Respuesta #55 en: 27 Marzo 2010, 15:09 pm »

si, SQL Server hace lo mismo cuando queres hacer una relacion con 2 tablas de colaciones distintas, ya me ha pasado, se la cambias y listo el pollo...

saludos.
En línea

royerphpmysql

Desconectado Desconectado

Mensajes: 64


que rico tequila.


Ver Perfil
Re: Ayuda con Consulta.
« Respuesta #56 en: 28 Marzo 2010, 00:19 am »

Código
  1. @mysql_query("SET collation_connection = latin1_spanish_ci;");
  2.  
  3. $res=mysql_query("SELECT a.nombres AS nombreAlumno, m.materia AS nombreMateria, IFNULL( k.calif1A, 'NO CALIFICADO' ) AS calif1A
  4. FROM materias m
  5. LEFT OUTER JOIN kardex k ON m.codigomateria = k.codigomateria
  6. LEFT OUTER JOIN alumnos a ON k.matricula = a.matricula WHERE k.matricula = ".$_POST['matricula']);
  7.  
  8.  
  9. $row=mysql_fetch_array($res);
  10.  

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource

saben a que se debera? ya investigue pero no lo puedo quitar ;)  saludos
En línea

seba123neo


Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Ayuda con Consulta.
« Respuesta #57 en: 28 Marzo 2010, 01:43 am »

creo que la matricula es string no ? tendria que ir entre comillas simples no ?? o ahi ya esta con comillas ?? pregunto porque de MySQL en web no conozco...
En línea

royerphpmysql

Desconectado Desconectado

Mensajes: 64


que rico tequila.


Ver Perfil
Re: Ayuda con Consulta.
« Respuesta #58 en: 28 Marzo 2010, 03:20 am »

excelente amigos ya quedo listo gracias por sus consejos .. peo no me da el resultado esperado puesto a que no me da el listado de materias y no me dice no esta calificado quiza este aplicando mal el codigo php. saludos ;(
En línea

royerphpmysql

Desconectado Desconectado

Mensajes: 64


que rico tequila.


Ver Perfil
Re: Ayuda con Consulta.
« Respuesta #59 en: 28 Marzo 2010, 07:46 am »

gracias a todos por su ayudaya logre mi objetivo..

dios los bendiga a todos
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,758 Último mensaje 17 Mayo 2011, 17:29 pm
por luison
ayuda con consulta sql
Bases de Datos
Mr.Blue 4 4,089 Último mensaje 16 Septiembre 2011, 23:23 pm
por fran800m
Ayuda con Consulta
PHP
dimitrix 1 1,737 Último mensaje 20 Febrero 2012, 20:16 pm
por HdM
ayuda en consulta
Bases de Datos
elnet 2 2,341 Último mensaje 13 Noviembre 2012, 18:02 pm
por Hadess_inf
ayuda consulta
Dudas Generales
24592 4 2,492 Último mensaje 21 Noviembre 2014, 21:39 pm
por tremolero
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines