Hola que tal, no entendi del todo bien lo que dijiste, pero me parecio interesante.
Tome lo que pude de tu modelo de datos y cree la siguiente estructura
Código:
#usuarios
id nombre
#clientes
id usuario_id nombre
#eventos
id cliente_id evento
y despues la query para funcionar sobre ese modelo, seria
Código SQL:
Ver originalSELECT u.nombre AS usuario_duenio_del_cliente
, c.nombre AS cliente
, e.evento
FROM eventos e
INNER JOIN clientes c
ON c.id = e.cliente_id
INNER JOIN usuarios u
ON u.id = c.usuario_id
INNER JOIN usuarios n
ON n.id = 'id del usuario logeado'
AND n.nivel <= u.nivel
WHERE e.cliente_id = 'id del cliente que queres ver'
Como funciona ? muy sencillo, hace un Inner Join a la tabla de usuarios, con la condicion que el nivel del usuario actual logeado sea menor o igual, al nivel del usuario "dueño" del cliente. Si es true, todo bien, si es false, la query no devuelve nada :D
Espero que te sirva :)
Saludos