Certamente...

Allora lo scopo è ricreare per un cliente di mio cugino ( a cui sto dando una mano )
il meccanismo di facebook, dove gli avvocati che sono registrati al sito si chiedono l'amicizia e solo quelli che sono amici vedono i post altrui ...

Detto questo la query originale aveva U.username e users.U nella query originale, aggiungendo alla query la relazione della tabella relatonship e lasciando U.username e users.U
al posto di farmi vedere in maniera corretta come nella query qui sotto

Codice PHP:
class Wall_Updates // Updates public function Updates($uid) { $query = mysql_query("SELECT M.msg_id, M.uid_fk, M.message, M.created FROM messages M WHERE M.uid_fk='$uid' OR M.uid_fk IN (SELECT user_1 FROM relationship AS r WHERE r.user_2 = '$uid' AND r.amico = 'S') OR M.uid_fk IN (SELECT user_2 FROM relationship AS r WHERE r.user_1 = '$uid' AND r.amico = 'S') order by M.msg_id desc ") or die(mysql_error()); while($row=mysql_fetch_array($query)) $data[]=$row; return $data; } 
I post degli utenti loggati ricreandomi identicamente la procedura di fb mi ripete il post per tutti gli users che sono nella tabella users.

A me è indispensabile richiamare la tabella users per printare l'username di fianco alla foto
e la foto del cliente, altrimenti con la query che ti ho appena postato mi viene fuori la foto di default ma non il nome di chi la messo creando confusione.



select a.*, b.username from messages as a inner join users as b on a.uid_fk = b.uid group by b.uid
In questa query non vedo la relazione e quindi non capisco se posso aggiungerla a questa tua query e risolvo il mio problema, oppure se tu avevi già previsto la relazione degli utenti che richiamo dalla tabella relationship ..

spero di essere stato chiaro