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
prueba :
select distintc (Nombre,idNombre)
from tabla;
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)
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
Cita de: robertito_prado en 8 Junio 2012, 11:17 AM
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?
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.
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
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.
Tienes razon pero ahora busco un resultado por pantalla para mi web app, luego ya optimizaré tema de base de datos
gracias
Cita de: 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
Si aun no te sale el query que quieres es este.
select (
select tabla.id
from tabla
where tabla.nombre = t.nombre
limit 1
) as id,
t.nombre
from
(select nombre
from tabla
group by nombre) as t
Yo lo simplificaría un poco más:
SELECT
MIN( Tabla.IdNombre ) as IdNombre,
Tabla.Nombre
FROM
Tabla
GROUP BY
Tabla.Nombre