Estás en etapa diseño. Todavía no hay tablas ni datos.
Esa pregunta se responde solamente contra un diseño de tablas ya implementado, caso contrario estamos hablando en abstracto.
Lo que te puedo anticipar es que tu mismo estás planteando la solución, sin verlo, cuando dices:
Cita: todos los amigos, solicitud pendiente de amigos y de los que no son amigos
Razónalo así:
- Los amigos son solamente aquellos de los que no hay peticiones pendientes y que están clasificados como tales.
- Los no amigos son aquellos que tienen peticiones pendientes.
- Desconocidos no existen en este contexto.
O sea: (CONTACTOS AMIGOS) + PETICIONES...
Tienes que simplemente ver cuáles son las condiciones que debe reunir el grupo. La consulta sale sola.