Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Ayuda con Outer Join

Estas en el tema de Ayuda con Outer Join en el foro de SQL Server en Foros del Web. Hola. Necesito hacer una consulta de 2 tablas. Que me regrese los datos que no tenga la otra tabla :borracho. Nesecito mostrar los permisos que ...
  #1 (permalink)  
Antiguo 12/05/2009, 10:51
Avatar de dadabit  
Fecha de Ingreso: febrero-2009
Ubicación: Coahuila, México
Mensajes: 145
Antigüedad: 15 años, 11 meses
Puntos: 1
Ayuda con Outer Join

Hola. Necesito hacer una consulta de 2 tablas. Que me regrese los datos que no tenga la otra tabla :borracho. Nesecito mostrar los permisos que un usuario no tenga:

Estas son mis tablas

PERMISO
PermisoId
DescPermiso

PERMISOSASIGNADOS
PAId
PermisoId
UsuarioId

Hasta ahora tengo esto, pero no me regresa nada:

Código:
Select PA.PermisoId, P.DescPermiso From PermisosAsignados  PA
Inner Join Permiso P On P.PermisoId = PA.PermisoId
Where	PA.PermisoFEId = P.PermisoId And
		P.PermisoId  Not In (Select PermisoId 
						     From PermisosAsignados) AND
		PA.UsuarioId = 6
Si se fijan tengo un Inner Join, porque aun no se utilizar el Outer Join en SQL Server...

De antemano muchas gracias...
  #2 (permalink)  
Antiguo 12/05/2009, 11:33
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 4 meses
Puntos: 39
Respuesta: Ayuda con Outer Join

Prueba asi:
Código sql:
Ver original
  1. SELECT PA.PermisoId, P.DescPermiso
  2. FROM PermisosAsignados  PA
  3. RIGHT JOIN Permiso P ON P.PermisoId = PA.PermisoId
  4. WHERE   PA.UsuarioId = 6
  5. AND     PA.PermisoId IS NULL
Para que usas PA.PermisoFEId = P.PermisoId?
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 12/05/2009, 12:19
Avatar de dadabit  
Fecha de Ingreso: febrero-2009
Ubicación: Coahuila, México
Mensajes: 145
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: Ayuda con Outer Join

No no funcionó, el que puse, no me regresa ningun dato...
pero con este ya lo arregle:

Cita:
Select P.PermisoId, P.DescPermiso From Permiso P
LEFT JOIN PermisosAsignados PA ON P.PermisoId = PA.PermisoId
Where P.PermisoId Not In(Select PermisoId
From PermisosAsignados
Where UserId = 6)
Espero que a alguíen le sirva, no use Outer, la verdad es que aún no les entiendo
pero ya lo probe con varios UserId y si funciona.....

Saludos y gracias
  #4 (permalink)  
Antiguo 02/06/2009, 08:40
Avatar de dadabit  
Fecha de Ingreso: febrero-2009
Ubicación: Coahuila, México
Mensajes: 145
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: Ayuda con Outer Join

Bueno realmente no jalo, me di cuenta que cuando habia permisos asignados duplicaba los registros. Pero hice esta consulta

Cita:
SELECT P.PermisoId, P.DescPermiso FROM PermisoFE P
WHERE P.PermisoId Not In(SELECT PA.PermisoFEId
FROM PermisosAsignadosFE PA
WHERE PA.UserId = @userId)
No se si sea correcto no usar Joins, poque la verdad ya me calleron mal...

bueno espero y esta autorespuesta ayude a alguien
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:30.