Título: Consulta Distinct a un solo campo Publicado por: matagalo en 8 Junio 2012, 09:41 am Hola chic@s,
Dada una tabla con los campos idNombre y nombre con la siguiente estructura: IdNombre Nombre 1 Juan 2 María 3 Juan 4 Pepe La salida que necesito son el idNombre y nombre cuyos nombres sean distintos, osea: 1 Juan 2 María 4 Pepe He intentado una consulta con distinct a un solo campo pero no funciona: SELECT distinct (Nombre), idNombre FROM tabla Haber si me podeis echar una mano, es una consulta simple pero estoy atascado :( gracias anticipadas Título: Re: Consulta Distinct a un solo campo Publicado por: robertito_prado en 8 Junio 2012, 11:08 am prueba :
select distintc (Nombre,idNombre) from tabla; Título: Re: Consulta Distinct a un solo campo Publicado por: matagalo en 8 Junio 2012, 11:13 am El distinct lo aplica sobre los dos campos y como el id es distinto en todos los casos muestra todos los nombres (y yo quiero aquellos que no se repitan)
Título: Re: Consulta Distinct a un solo campo Publicado por: robertito_prado en 8 Junio 2012, 11:17 am Ya claro, es que deberia de ir de tu forma...
Yo creo que no se puede, porque no hay ningun numero repetido y aunque haya nombres no importa, porque no los relacionas de ninguna manera...Tienes que tener otras tablas o algo para relacionarlos si no nada. si no en ves de esto : 1 Juan 2 María 4 Pepe te podria mostrar esto: 2 María 3 Juan 4 Pepe Título: Re: Consulta Distinct a un solo campo Publicado por: matagalo en 8 Junio 2012, 12:06 pm te podria mostrar esto: 2 María 3 Juan 4 Pepe Me serviría igual, en este caso mostrar un id u otro da igual ¿como sería? Título: Re: Consulta Distinct a un solo campo Publicado por: robertito_prado en 8 Junio 2012, 12:26 pm No, no. Dije que te podria mostrar tanto una como otra.
Si no tienes relacionadas las tablas, te repito que creo que no se puede, o yo al menos no se. Título: Re: Consulta Distinct a un solo campo Publicado por: matagalo en 8 Junio 2012, 12:38 pm Se me ha ocurrido una solución que podría servir.. Voy a incluir un campo booleano repetido, luego lo incluyo la clausula where. Esta es la idea:
ESTRUCTURA TABLA: IdNombre Nombre Repetido 1 Juan False 2 María False 3 Juan TRUE 4 Pepe False CONSULTA: SELECT Nombre, idNombre FROM tabla WHERE repetido=false SALIDA ESPERADA: IdNombre Nombre 1 Juan 2 María 4 Pepe Título: Re: Consulta Distinct a un solo campo Publicado por: robertito_prado en 8 Junio 2012, 13:13 pm Asi puede valr, pero es muy chapucero y ademas solo te serviria para esta tabla en concreto...
Lo que se supone es que tienes que aprenderlo para cualquier tabla que te pongan, no solo para esta. Título: Re: Consulta Distinct a un solo campo Publicado por: matagalo en 8 Junio 2012, 13:38 pm Tienes razon pero ahora busco un resultado por pantalla para mi web app, luego ya optimizaré tema de base de datos
gracias Título: Re: Consulta Distinct a un solo campo Publicado por: Toxico en 10 Junio 2012, 03:15 am Hola chic@s, Dada una tabla con los campos idNombre y nombre con la siguiente estructura: IdNombre Nombre 1 Juan 2 María 3 Juan 4 Pepe La salida que necesito son el idNombre y nombre cuyos nombres sean distintos, osea: 1 Juan 2 María 4 Pepe He intentado una consulta con distinct a un solo campo pero no funciona: SELECT distinct (Nombre), idNombre FROM tabla Haber si me podeis echar una mano, es una consulta simple pero estoy atascado :( gracias anticipadas Si aun no te sale el query que quieres es este. Código: select ( Título: Re: Consulta Distinct a un solo campo Publicado por: Aberroncho en 11 Junio 2012, 22:33 pm Yo lo simplificaría un poco más:
Código
Título: Re: Consulta Distinct a un solo campo Publicado por: Rodwin en 15 Marzo 2022, 02:28 am Saludos logre resolver el dilema
suponemos que tenemos una tabla1 y queresmos todos los registros distintos del campo1 asi quedaria la consulta SELECT id, campo1, campo2 ... etc FROM tabla1 Aux WHERE id = (SELECT id FROM tabla1 WHERE campo1 = Aux.campo1 LIMIT 1 ) Que hace la consulta, lo especial esta en la clausula where compara el ID con el ID de la sub consulta que va a devolver el primer elemento que cumpla con la condicion campo1 = Aux.campo1 y como siempre va a devolver el primer elemento cuando se compare con el primer elemento que se repita los id seran distinto y no tomara ese registro asi susesivamente parasara lo mismo con cada registro repetido devolviendo asi solo el primer registro que encuentre distitno en campo1 |