Ayuda Urdente con Sub-Querys
Buenas tardes, tengo el siguiente problema, por ejemplo tengo estas tablas (solo escribo los campos que son relevantes de las mismas):
USUARIO (LoginUsuario)
PERFIL (IdPerfil)
USUARIO_PERFIL(LoginUsuario, IdPerfil)
Esto con el detalle de que cada usuario puede tener N perfiles.
Ahora mi problema es el siguiente: Yo quiero mandar un LoginUsuario a un stored procedure y devolver todos los usuarios que tengan los mismos perfiles que el que mande (no importa si estos tienen más perfiles pero como mínimo deben tener los mismos.
Ilustro un poco más mi problema tengo los siguientes datos (separados por punto y coma ";")
USUARIOS: A ; B ; C ; D
PERFILES: 1 ; 2 ; 3 ; 4 ; 5 ; 6
USUARIOS_PERFILES: (A , 1) ; (A , 2) ; (B , 1) ; (B , 2) ; (C , 1) ; (D , 2)
y el siguiente query:
SELECT DISTINCT LoginUsu
FROM UsuarioPerfil UP1
WHERE (IdPerfil in
(SELECT DISTINCT IdPerfil
FROM UsuarioPerfil UP2
WHERE (LoginUsuario = 'A')))
Eso me devolvería a los usuarios B(por tener los mismos perfiles) pero también al C y al DE por tener al menos un perfil en común (eso es por el in del query pero si pongo igual cuando hay algún registro que tenga más de una coincidencia da error). ¿Qué me recomiendan para solucionar este problema? (Con sub-query o con lo que sea), de ante mano muchísimas gracias por sus respuestas.
USUARIO (LoginUsuario)
PERFIL (IdPerfil)
USUARIO_PERFIL(LoginUsuario, IdPerfil)
Esto con el detalle de que cada usuario puede tener N perfiles.
Ahora mi problema es el siguiente: Yo quiero mandar un LoginUsuario a un stored procedure y devolver todos los usuarios que tengan los mismos perfiles que el que mande (no importa si estos tienen más perfiles pero como mínimo deben tener los mismos.
Ilustro un poco más mi problema tengo los siguientes datos (separados por punto y coma ";")
USUARIOS: A ; B ; C ; D
PERFILES: 1 ; 2 ; 3 ; 4 ; 5 ; 6
USUARIOS_PERFILES: (A , 1) ; (A , 2) ; (B , 1) ; (B , 2) ; (C , 1) ; (D , 2)
y el siguiente query:
SELECT DISTINCT LoginUsu
FROM UsuarioPerfil UP1
WHERE (IdPerfil in
(SELECT DISTINCT IdPerfil
FROM UsuarioPerfil UP2
WHERE (LoginUsuario = 'A')))
Eso me devolvería a los usuarios B(por tener los mismos perfiles) pero también al C y al DE por tener al menos un perfil en común (eso es por el in del query pero si pongo igual cuando hay algún registro que tenga más de una coincidencia da error). ¿Qué me recomiendan para solucionar este problema? (Con sub-query o con lo que sea), de ante mano muchísimas gracias por sus respuestas.
1 respuesta
Respuesta de zaratustra88
1