SQL - Consulta registros con valor no coincidente

 
Vista:

Consulta registros con valor no coincidente

Publicado por Jose Maria (1 intervención) el 19/08/2016 14:39:08
Hola,
Tengo una tabla con 2 campos, [Persona] y [Aficion] de forma que una misma persona puede tener más de una aficion. Por ejemplo
[Persona] [Aficion]
Pedro Lectura
Pedro Deportes
Juan Comer
Juan Dormir
Luis Lectura

Me gustaría realizar una consulta que me devolviera las personas que no tienen una afición en concreto, por ejemplo las personas que no les guste la lectura. En este caso solo deberia devolver a Juan

Si hago SELECT Persona FROMtabla WHERE Aficion <> "Lectura" me devolvería a Pedro y a Juan, porque Pedro tiene otra afición más.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Consulta registros con valor no coincidente

Publicado por eloy (1 intervención) el 19/08/2016 15:19:48
La consulta esta bien pero si quieres que te aparezca solo una vez el nombre puedes utilizar, lo que tienes que tener en cuenta es en que motor de datos estas trabajando, generalmente se utiliza 'Lectura' no "Lectura" sin embargo si deseas utilizarlo como esta y en caso fuera SQL Server utiliza un set quoted_identifier off y puedes utilizar las comillas dobles...

Select distinct persona from tabla where Aficion <> 'Lectura'

tambien podrias utilizar

Select persona, count(*) as registros from tabla where Aficion <> 'Lectura' group by persona

en esta ultima tendras un registro con persona y la cantidad de aficiones diferentes a lectura que tiene..

te recomendaria que vuelvas a analizar tu diseño, la idea siempre es no tener que repetir datos...

sugiero tabla personas(Id, Persona) y una segunda tabla Aficiones (Id, Aficcion) y una tabla que relacione ambas Persona_Afiicion (IdPersona, IdAficcion) la relacion seria de uno a muchos... asi una persona podria tener varias aficiones y una aficion podria estar asociada a varias personas...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consulta registros con valor no coincidente

Publicado por Martha (14 intervenciones) el 19/08/2016 19:58:26
Tienes que hacer una consulta para obtener el listado de los que les gusta "Lectura" para después pedirle que te de el resto.

Yo haría esto:

1
2
3
SELECT persona FROM mitabla WHERE persona NOT IN(
SELECT persona FROM mitabla WHERE aficion='Lectura')
;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar