Grazie Optime per la risposta.
magari non ho capito bene, ma il problema è che il mio campo "reports_to_id" (nel tuo caso "IdFruttoAlternativo") non è presente nella
tabella "aos_contracts AS a" ma solo nella tabella "users", quindi facendo una seconda join mi sballa i risultati.

Credo anche io che, come dice Clasku, la soluzione migliore sia eseguire una nuova query, il problema è che non so come farla lavorare
all'interno del mio while.
Come scrivevo nel post precedente, la logica mi porta a pensare che avrei bisogno di una query del genere:

$estrazione2 ="SELECT users.id AS id_ut, users.last_name AS cognome FROM users WHERE users.id = '{$sm}'";
recuperare la variabile es. "$sm_cognome= row2['last_name'];" e inserirla nel mio while.

Il problema è che non so come fare, perché se assegno al mio while i due "result" con un AND ovviamente non funziona perché diciamo
"somma" i risultati e quindi ottengo un elenco vuolo perché non c'è corrispondenza.

Ho provato anche a gestire la cosa con due while

while ($line= mysql_fetch_array($result))
$rowset1[]=$line;

while ($line2= mysql_fetch_array($result2))
$rowset2[]=$line2;

e gestire le stringhe tramite "foreach", ma non so come inserire il campo recuperato dal secondo while dentro
foreach($rowset1 as $row1) {
echo "....";
}

Qualche idea?

Grazie mille, soprattutto per la pazienza