Tengo otra solución más rápida que obtiene el mismo resultado que el mensaje que posteé anteriormente:
Código MySQL:
Ver originalselect uu.nombre
'usuario', oo.nombre
'oficina', dd.nombre
'documento' from oficina oo
, usuario uu
, documento dd
, permisos pp
where oo.id
=uu.idoficina
and pp.documento
=dd.id
and uu.id
=pp.usuario
;
Es 6 veces más rápido y es más corto.
Además de ésta, otra diferencia es la seguridad en la información presentada. En el anterior, si un usuario es eliminado, se puede fácilmente verificar si existen permisos flotantes sin razón (aparecen null en información del usuario que adquirió permisos). En este último no. La utilidad del anterior va para áreas evaluativas como auditorías, mientras este último como consultivas nada más, como reportes gerenciales.