elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  [SQL] Problema con consulta
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SQL] Problema con consulta  (Leído 2,398 veces)
darknlee

Desconectado Desconectado

Mensajes: 5


Ver Perfil
[SQL] Problema con consulta
« en: 28 Enero 2014, 19:06 pm »

Hola quería ver si me podéis echar una mano con una consulta SQL que me está costando sacar.
Tengo 2 tablas, Users y Groups_Users

Tabla Users: id, nombre, apellidos etc.
Tabla Groups_Users: idGrupo, idUsuario

El caso es que necesito obtener los usuarios que NO estén en ningún grupo o que estén en el grupo distinto al especificado. La consulta que estoy utilizando es la siguiente pero no me funciona:

Código:
SELECT u.id, u.nombre  FROM [Users] u LEFT JOIN Groups_Users g ON u.id=g.idUsuario WHERE g.idUsuario IS NULL OR g.idGrupo<>1;
//Por ejemplo

La primera parte es correcta porque me trae los que no están en ningún grupo, es decir hasta aquí bien:
Código:
SELECT u.id, u.nombre  FROM [Users] u LEFT JOIN Groups_Users g ON u.id=g.idUsuario WHERE g.idUsuario IS NULL

La segunda parte es en la que tengo problemas.

PD: Estoy en SQL Server.

Un saludo


En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: [SQL] Problema con consulta
« Respuesta #1 en: 28 Enero 2014, 19:32 pm »

Podrías colocar un ejemplo para poder ver que es lo que necesitas exactamente.

Por lo que entiendo, esto debe funcionarte a menos que te yo este mal entendiendo el problema o no lo hayas explicado correctamente.

Código
  1. SELECT  u.id, u.nombre, u.apellidos
  2. FROM    users u
  3. WHERE   NOT EXISTS
  4.        (
  5.        SELECT  NULL
  6.        FROM    groups_users g
  7.        WHERE   g.idusuario = u.id
  8.        )
  9. UNION
  10. SELECT u.id, u.nombre, u.apellidos
  11. FROM users u, groups_users g WHERE u.id=g.idusuario AND g.idgrupo<>4
  12.  


« Última modificación: 28 Enero 2014, 19:42 pm por Darhius » En línea

abc
darknlee

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: [SQL] Problema con consulta
« Respuesta #2 en: 28 Enero 2014, 21:15 pm »

Hola Darhius, antes de nada te agradezco mucho la respuesta, voy a poner un ejemplo porque igual no me he explicado correctamente.

Tengo el siguiente registro en la tabla Users:

id     Nombre     Apellidos
------------------------------ 
1   Perico    Palotes
2      Paco           Gómez
3      Roberto      García

En la tabla Groups_Users ( 1 usuario puede pertecenecer a 0 o a muchos grupos)

idGrupo   idUsuario
----------------------
1                1
2                3
3                1


Lo que quiero es realizar una consulta que me devuelva tanto los usuarios que no están en ningún grupo como los que no pertenecen a un grupo determinado, es decir que si lanzo la consulta de tal forma que me de los usuarios que no pertenecen al grupo 1 y a ningún grupo me de la siguiente salida:

id     Nombre     Apellidos
------------------------------ 
2      Paco           Gómez
3      Roberto      García

(omitiendo al usuario con id 1 porque uno de los grupos a los que pertenece es el grupo 1)

Un saludo,

En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: [SQL] Problema con consulta
« Respuesta #3 en: 28 Enero 2014, 21:21 pm »

No recuerdo mucho esto, pero espero no ser un tonto al decir que: quizás con un LEFT JOIN o RIGHT JOIN puedas obtener esos resultados. Es decir, -dependiendo del canal de retorno-
Código
  1. SELECT usu.Id, usu.Nombre, usu.Apellido FROM usuario usu LEFT JOIN grupo grp ON grp.idUsuario = usu.id
ó
Código
  1. SELECT usu.Id, usu.Nombre, usu.Apellido FROM usuario usu RIGHT JOIN grupo grp ON grp.idUsuario = usu.id

Pruba a ver que canal es,
En línea

Te vendería mi talento por poder dormir tranquilo.
1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: [SQL] Problema con consulta
« Respuesta #4 en: 29 Enero 2014, 00:05 am »

El caso es que necesito obtener los usuarios que NO estén en ningún grupo o que estén en el grupo distinto al especificado.

e quiero es realizar una consulta que me devuelva tanto los usuarios que no están en ningún grupo como los que no pertenecen a un grupo determinado, es decir que si lanzo la consulta de tal forma que me de los usuarios que no pertenecen al grupo 1 y a ningún grupo me de la siguiente salida:

Ten más cuidado con lo que escribes porque se puede mal interpretar, tal y como lo hice yo.. por eso pedía un ejemplo, bueno ahora que lo tengo veamos que se puede hacer.



Edito:

Segun yo, con esto debe quedar xD

Código
  1. SELECT  u.id, u.nombre, u.apellidos
  2. FROM    users u
  3. WHERE   NOT EXISTS ( SELECT  NULL FROM    groups_users g WHERE   g.idusuario = u.id )
  4. UNION
  5. SELECT u.id, u.nombre, u.apellidos  FROM groups_users g, users u WHERE g.idusuario=u.id AND g.idgrupo!=1
  6. AND g.idusuario NOT IN(
  7. SELECT gu.idusuario FROM groups_users gu WHERE gu.idgrupo=1)
  8.  
« Última modificación: 29 Enero 2014, 00:44 am por Darhius » En línea

abc
HdM


Desconectado Desconectado

Mensajes: 1.674



Ver Perfil
Re: [SQL] Problema con consulta
« Respuesta #5 en: 29 Enero 2014, 12:26 pm »

Otra opción podría ser:

Código
  1. SELECT id, nombre  FROM Users
  2. WHERE (id NOT IN (SELECT DISTINCT idUsuario FROM Groups_Users))
  3. OR (id NOT IN (SELECT idUsuario FROM Groups_Users WHERE idGrupo=1))
En línea

- Nice to see you again -
darknlee

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: [SQL] Problema con consulta
« Respuesta #6 en: 29 Enero 2014, 14:19 pm »

Ten más cuidado con lo que escribes porque se puede mal interpretar, tal y como lo hice yo.. por eso pedía un ejemplo, bueno ahora que lo tengo veamos que se puede hacer.

Toda la razón, es que me pasé de sol a sol programando y ya no sé ni lo que puse.

Muchísimas gracias a todos por vuestra ayuda, especialmente a ti Darhius ahora si que si. ;-)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con una consulta SQL
Bases de Datos
_CrisiS_ 2 3,176 Último mensaje 18 Febrero 2010, 23:38 pm
por _CrisiS_
Problema con una consulta
PHP
TheMaker 1 2,181 Último mensaje 20 Julio 2010, 15:49 pm
por MinusFour
Problema con consulta SQL
Java
.:UND3R:. 0 1,549 Último mensaje 20 Octubre 2013, 03:44 am
por .:UND3R:.
Problema con consulta IF
Programación C/C++
jaxoR 3 2,116 Último mensaje 2 Diciembre 2013, 15:31 pm
por jaxoR
problema con consulta
Bases de Datos
m@o_614 3 2,809 Último mensaje 30 Mayo 2014, 17:06 pm
por elezekiel
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines