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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  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,146 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.723


<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

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
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,012 Último mensaje 18 Febrero 2010, 23:38 pm
por _CrisiS_
Problema con una consulta
PHP
TheMaker 1 2,020 Último mensaje 20 Julio 2010, 15:49 pm
por MinusFour
Problema con consulta SQL
Java
.:UND3R:. 0 1,451 Último mensaje 20 Octubre 2013, 03:44 am
por .:UND3R:.
Problema con consulta IF
Programación C/C++
jaxoR 3 1,910 Último mensaje 2 Diciembre 2013, 15:31 pm
por jaxoR
problema con consulta
Bases de Datos
m@o_614 3 2,609 Último mensaje 30 Mayo 2014, 17:06 pm
por elezekiel
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines