Comunidad de diseño web y desarrollo en internet online

consulta MySQL

Citar            
MensajeEscrito el 01 Oct 2008 02:17 am
necesito hacer una consulta donde tengo 10 nombres cada uno con un id unico del 0 al 9

las cuales solo 5 parecen en otra tabla(pagos) pero una persona pago dos veces por lo menos tiene dos id de pago, pero el mismo id de la persona

la cuestion es que cuando hago la consulta esa persona que pago dos veces me aparece dos veces, y solo quiero que aparezca una sola vez ya que solo quiero saber quienes pagaron

esta es mi consulta

Código :


--Mostrar todos los alumnos que abonaron el pago del curso.

select alumnos.nombre
from alumnos inner join  pagos
on  alumnos.id_alumno = pagos.id_alumno;


tablas

Código :

id_alumno    nombre    direccion
   0    Juan    recta 59
   1    matias    Rafael N 63
   2    Nicolas    Cordillera 555
   3    Roberto    solano 23
   4    Romina    poincare 66
   5    sofia    Juan 1934
   6    Hernan    9 de julio 32
   7    Rodrigo    25 de mayo 33
   8    Gonzalo    gral paz 55
   9    Jorge    27 de abril


Código :

id_pago    monto    fecha            id_alumno
   0    200            2008-07-07    0
   1    250             2008-07-07    3
   2    250            2008-07-07    4
   3    250             2008-07-07    5
   4    250             2008-07-07    2
   5      50             2008-07-14    0


saludos

Por matiasnicolas

58 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 01 Oct 2008 01:36 pm
Me parece q te faltaria poner la relacion que indique q es lo que pago, no? Pq sino tenes el monto que pago una persona de algo q no sabes q es....

Para que te traiga solo una vez los datos podrias hacer esto:

Código :

SELECT distinct a.id_alumno,a.nombre
FROM pagos p 
INNER JOIN alumnos a
ON p.id_alumno = a.id_alumno


Saludos

Por 3w

145 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 01 Oct 2008 05:07 pm
El distinct, distingue por rows, si agregas un campo como sumatoria de pago o algo, el resultado no será el idoneo, lo mejor es usar el group by, algo tan simple como:

Código :

select alumnos.nombre
from alumnos inner join  pagos
on  alumnos.id_alumno = pagos.id_alumno;
GROUP BY alumnos.alumno_id

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 02 Oct 2008 12:23 am
Muchas gracias, si me fije y con el dinstinct y el group by funciona, la idea era saber cual era el correcto.

dano me ayudo mucho lo que me dijiste! <ahora ya se cual es el idoneo para usar

saludos!!!!

Por matiasnicolas

58 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.