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

Utilizar DISTINCT pero aplicandolo a un solo campo?

Estas en el tema de Utilizar DISTINCT pero aplicandolo a un solo campo? en el foro de Bases de Datos General en Foros del Web. Saludos. tengo una tabla con noticias, lo que quiero es que no me muestre noticias repetidas, el problema surge en que al utilizar DISTINCT me ...
  #1 (permalink)  
Antiguo 21/03/2009, 17:11
Avatar de oscarva  
Fecha de Ingreso: agosto-2004
Ubicación: Bogota - Colombia
Mensajes: 425
Antigüedad: 20 años, 3 meses
Puntos: 2
Utilizar DISTINCT pero aplicandolo a un solo campo?

Saludos.

tengo una tabla con noticias, lo que quiero es que no me muestre noticias repetidas, el problema surge en que al utilizar DISTINCT me retornara solo el valor del campo al que se lo aplico y los demas campos no los retorna.

es decir si utilizo:
Código PHP:
SELECT DISTINCT titulo FROM noticias ORDER BY karma DESC LIMIT 1,20 
solo podre mostrar titulo, y ningun otro campo me retornara.

Y si utilizo:
Código PHP:
SELECT DISTINCT titulofechaid FROM noticias ORDER BY karma DESC LIMIT 1,20 
Me le aplicara el DISTINCT tambien a fecha e id, y como muchas noticias tienen la misma fecha no me serviria asi

como podria hacer que le aplique el DISTINCT solo a titulo y que me retorne todos los demas campos?

Gracias
__________________
Colsitio. Guía de Hosting
  #2 (permalink)  
Antiguo 21/03/2009, 17:51
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Utilizar DISTINCT pero aplicandolo a un solo campo?

No se si funcione, pero prueba con:

Código MySQL:
Ver original
  1. SELECT (SELECT DISTINCT titulo FROM noticias), fecha, id FROM noticias ORDER BY karma DESC LIMIT 1,20;

Ojala te funcione.
  #3 (permalink)  
Antiguo 21/03/2009, 17:53
Avatar de oscarva  
Fecha de Ingreso: agosto-2004
Ubicación: Bogota - Colombia
Mensajes: 425
Antigüedad: 20 años, 3 meses
Puntos: 2
Respuesta: Utilizar DISTINCT pero aplicandolo a un solo campo?

Que tal huesos, lamentablemente no funciono :( tira el error:

Subquery returns more than 1 row
__________________
Colsitio. Guía de Hosting
  #4 (permalink)  
Antiguo 21/03/2009, 17:57
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Utilizar DISTINCT pero aplicandolo a un solo campo?

Trata de ponerle limites de 1,20 a la subconsulta.

Eso parece ser lo que dice el error.
  #5 (permalink)  
Antiguo 21/03/2009, 18:03
Avatar de oscarva  
Fecha de Ingreso: agosto-2004
Ubicación: Bogota - Colombia
Mensajes: 425
Antigüedad: 20 años, 3 meses
Puntos: 2
Respuesta: Utilizar DISTINCT pero aplicandolo a un solo campo?

No nada :(

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DISTINCT titulo FROM noticias ORDER BY karma DESC LIMIT 1,20), fecha, id FROM n' at line 1

saludos
__________________
Colsitio. Guía de Hosting
  #6 (permalink)  
Antiguo 21/03/2009, 18:06
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Utilizar DISTINCT pero aplicandolo a un solo campo?

Ya la probé y a mi si me parece funcionar.

Código MySQL:
Ver original
  1. SELECT (SELECT DISTINCT titulo FROM noticias limit 1,20), fecha, id FROM noticias ORDER BY karma DESC LIMIT 1,20;

Revisa bien la sintaxis.
  #7 (permalink)  
Antiguo 21/03/2009, 18:14
Avatar de oscarva  
Fecha de Ingreso: agosto-2004
Ubicación: Bogota - Colombia
Mensajes: 425
Antigüedad: 20 años, 3 meses
Puntos: 2
Respuesta: Utilizar DISTINCT pero aplicandolo a un solo campo?

Que raro, nuevamente me muestra "Subquery returns more than 1 row" incluso ejecutandolo en el phpmyadmin
__________________
Colsitio. Guía de Hosting
  #8 (permalink)  
Antiguo 21/03/2009, 18:23
Avatar de oscarva  
Fecha de Ingreso: agosto-2004
Ubicación: Bogota - Colombia
Mensajes: 425
Antigüedad: 20 años, 3 meses
Puntos: 2
Respuesta: Utilizar DISTINCT pero aplicandolo a un solo campo?

Bueno, quitandole el FROM noticias al subquery no muestra el error, pero entonces el DISTINCT deja de funcionar :(

Código PHP:
SELECT (SELECT DISTINCT titulo LIMIT 1,20), fechaid FROM noticias ORDER BY karma DESC LIMIT 1,20
__________________
Colsitio. Guía de Hosting
  #9 (permalink)  
Antiguo 22/03/2009, 07:06
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Utilizar DISTINCT pero aplicandolo a un solo campo?

Hola Oscarva

Encontré un problema similar al tuyo en este mismo foro, no se si te sirva la solución

La soución sería:
Código MySQL:
Ver original
  1. SELECT titulo, fecha, id FROM noticias group by titulo ORDER BY karma DESC LIMIT 1,20

La fuente es:
http://www.forosdelweb.com/f86/disti...cifico-616190/

Espero te sirva
  #10 (permalink)  
Antiguo 22/03/2009, 12:36
Avatar de oscarva  
Fecha de Ingreso: agosto-2004
Ubicación: Bogota - Colombia
Mensajes: 425
Antigüedad: 20 años, 3 meses
Puntos: 2
Respuesta: Utilizar DISTINCT pero aplicandolo a un solo campo?

hay Dios, el GROUP BY XD

funciona perfecto, saludos y gracias huesos
__________________
Colsitio. Guía de Hosting
  #11 (permalink)  
Antiguo 22/03/2009, 13:09
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 9 meses
Puntos: 360
Respuesta: Utilizar DISTINCT pero aplicandolo a un solo campo?

Que gran problema y que simple solución.
Me alegra que hayas solucionado tu inconveniente.
Un saludo.
  #12 (permalink)  
Antiguo 17/04/2009, 11:40
 
Fecha de Ingreso: septiembre-2008
Mensajes: 30
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Utilizar DISTINCT pero aplicandolo a un solo campo?

yo tambien tenia ese problema al usar

distinct y order by en la misma consulta y

me ayudo mucho tu respuesta..

la solucion era un group by ...


muchas gracias :)
  #13 (permalink)  
Antiguo 21/04/2009, 10:17
Avatar de aldo1982  
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Fe (Argentina) Colon F.C
Mensajes: 1.362
Antigüedad: 20 años
Puntos: 6
Respuesta: Utilizar DISTINCT pero aplicandolo a un solo campo?

usa el GROUP BY

y la proxima ponelo en el foro de SQL man
__________________
LA MUERTE ESTÁ TAN SEGURA DE VENCER QUE NOS DA TODA UNA VIDA DE VENTAJA
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 22:58.