Hola gamau6:
No termino de entender correctamente cuál es la condición que se tiene que cumplir para que el registro aparezca en la consulta final. si entendí correctamente el tercer registro que pones de salida NO DEBE APARECER, ya que el estado del registro 3 de la tabla amigos aparece como 0.
Creo que lo que quieres obtener sería todos los amigos de DANIEL que tengan un estado 1 en la tabla amigos, si estoy en lo correcto podrías hacerlo así:
Código MySQL:
Ver original -> AND A.id_recibe
= U.id_usuario
AND A.estado
= 1) -> AND A.id_envia
= U.id_usuario
AND A.estado
= 1); +------------+--------+
| id_usuario | nombre |
+------------+--------+
| 2 | paola |
| 3 | pedro |
+------------+--------+
Ahora bien, si necesitas también los campos id_recibe y id_envia, tendrías que hacerlo un poco diferente, utilizando JOIN's en lugar de EXISTS:
Código MySQL:
Ver originalmysql
> SELECT U.id_usuario
, A1.id_envia
, A1.id_recibe
, U.nombre
-> ON A1.id_recibe
= U.id_usuario
-> SELECT U.id_usuario
, A1.id_envia
, A1.id_recibe
, U.nombre
-> A1.id_envia = U.id_usuario;
+------------+----------+-----------+--------+
| id_usuario | id_envia | id_recibe | nombre |
+------------+----------+-----------+--------+
| 2 | 1 | 2 | paola |
| 3 | 3 | 1 | pedro |
+------------+----------+-----------+--------+
Dale un vistazo a ver si esto es lo que necesitas, y si continuas con problemas trata nuevamente de explicar el filtro que quieres aplicar a tu información.
Saludos
Leo.