Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: ZharkD en 5 Agosto 2010, 02:17 am



Título: Duda expres y rapida para una consulta en base de datos!
Publicado por: ZharkD en 5 Agosto 2010, 02:17 am
Buenas,

Tengo esta consulta:
Código:
mysql_query("SELECT * FROM table WHERE estado=1 ORDER BY puntos DESC LIMIT 6");
Sin emabrgo, cada fila consta de dos elementos que necesito que no se repitan, alguna idea de como hacerlo?
Por ejemplo, tabla:
Código:
ID | ESTADO | EL1 | EL2 | PUNTOS
1 | 1 | a | b | 1500
2 | 1 | x | c | 200
3 | 1 | a | b | 400
Suponiendo que solo quiero mostrar dos (de tres filas), my ejecucion mostraria el ID 1 y 3, sin embargo, tienen los mismos dos elementos, por lo que deseo que NO se muestren filas con elementos (EL1 y EL2) similares, alguna idea de como hacerlo?

Gracias.


Título: Re: Duda expres y rapida para una consulta en base de datos!
Publicado por: #!drvy en 6 Agosto 2010, 06:56 am
Conozco 2 formas de hacerlo... una es con distinct y la otra con group by...
yo prefiero la de group by.

Código
  1. SELECT ID,ESTADO,EL1,EL2,PUNTOS FROM wakala WHERE estado=1 GROUP BY EL1,El2 ORDER BY puntos DESC LIMIT 0,2

por lo que obtendrias algo asi:
Código:
ID | ESTADO | EL1 | El2 | PUNTOS
1     1        a      b      1500
2     1        x      c       200

no creo que sea la mejor forma pero ahi va XD



Saludos


Título: Re: Duda expres y rapida para una consulta en base de datos!
Publicado por: ZharkD en 6 Agosto 2010, 18:36 pm
Conozco 2 formas de hacerlo... una es con distinct y la otra con group by...
yo prefiero la de group by.

Código
  1. SELECT ID,ESTADO,EL1,EL2,PUNTOS FROM wakala WHERE estado=1 GROUP BY EL1,El2 ORDER BY puntos DESC LIMIT 0,2

por lo que obtendrias algo asi:
Código:
ID | ESTADO | EL1 | El2 | PUNTOS
1     1        a      b      1500
2     1        x      c       200

no creo que sea la mejor forma pero ahi va XD



Saludos
Gracias por la respeusta, olvide notificar que lo habia solucionado ese mismo dia unas horas despues, efectivamente con GROUP BY :)

Gracias por su atencion, pueden cerrar tema :)