Hola rhapsodyred:
En realidad tienes muchas formas para obtener lo que necesitas, dependiendo de cómo quieres presentar la información, pero antes que nada algunas consideraciones:
1. Según lo que planteas, los campos OPRID y NAMEUSR no cambian, sólo el ROLENAME.
2. el campo ID es tu campo llave y este tampoco debería considerarse para la consulta.
Partiendo de estos supuestos, te repito, hay muchas formas de hacer lo que pides. Hay un viejo dicho que dice "DIVIDE Y VENCERÁS", la consulta la puedes dividir en tres partes:
- Los registros que no cambiaron.
- Los privilegios originales que se eliminaron.
- Los privilegios nuevos que se agregaron.
De esta manera, puedes hacer tres subconsultas y unirlas con UNION, algo así:
Código MySQL:
Ver original+------+--------+--------------+-------------------+
| ID | OPRID | NAMEUSR | ROLENAME |
+------+--------+--------------+-------------------+
| 1 | PPEREZ | PEPITO PEREZ | ACCESO PORTAL WEB |
| 2 | PPEREZ | PEPITO PEREZ | ADMINISTRADOR |
| 3 | PPEREZ | PEPITO PEREZ | CONSULTA CAB |
| 4 | PPEREZ | PEPITO PEREZ | REPORTE CAB |
+------+--------+--------------+-------------------+
+------+--------+--------------+-------------------+
| ID | OPRID | NAMEUSR | ROLENAME |
+------+--------+--------------+-------------------+
| 1 | PPEREZ | PEPITO PEREZ | ACCESO PORTAL WEB |
| 2 | PPEREZ | PEPITO PEREZ | ADMINISTRADOR |
| 3 | PPEREZ | PEPITO PEREZ | CONSULTA PORTAL |
+------+--------+--------------+-------------------+
mysql
> SELECT user_old.
*, 'SIN CAMBIOS' estatus
-> user_old.oprid
= user_new.oprid
AND -> user_old.nameusr
= user_new.nameusr
AND -> user_old.rolename = user_new.rolename
-> SELECT user_old.
*, 'ELIMINADOS' estatus
-> user_old.oprid
= user_new.oprid
AND -> user_old.nameusr
= user_new.nameusr
AND -> user_old.rolename = user_new.rolename)
-> SELECT user_new.
*, 'AGREGADOS' estatus
-> user_old.oprid
= user_new.oprid
AND -> user_old.nameusr
= user_new.nameusr
AND -> user_old.rolename = user_new.rolename);
+------+--------+--------------+-------------------+-------------+
| ID | OPRID | NAMEUSR | ROLENAME | estatus |
+------+--------+--------------+-------------------+-------------+
| 1 | PPEREZ
| PEPITO PEREZ
| ACCESO PORTAL WEB
| SIN CAMBIOS
| | 2 | PPEREZ
| PEPITO PEREZ
| ADMINISTRADOR
| SIN CAMBIOS
| | 3 | PPEREZ | PEPITO PEREZ | CONSULTA CAB | ELIMINADOS |
| 4 | PPEREZ | PEPITO PEREZ | REPORTE CAB | ELIMINADOS |
| 3 | PPEREZ | PEPITO PEREZ | CONSULTA PORTAL | AGREGADOS |
+------+--------+--------------+-------------------+-------------+
Dale un vistazo para ver si te sirve, trata de ejecutar cada subconsulta por separado para que entiendas su lógica, si continuas con problemas coméntalo en el foro.
Saludos
Leo