cerco di spiegarmi meglio:
ho 4 tabelle dove vado a recuperare i miei dati per creare il mio elenco
- aos_contracts
- aos_contracts_cstm
- accounts
- users
L'estrazione come dicevo al momento funziona correttamente.
Il campo "reports_to_id" però non è presente nella tabella "aos_contracts" che diciamo è quella principale con gli ordini, ma
è presente soltanto nella tabella "users" dove sono presenti tutti gli utenti della piattaforma indistintamente.
Con la mia query estraggo l'elenco dei contratti e i dati relativi.
il dato "created_by" (presente nella tabella "aos_contracts") si riferisce all'utente che ha creato l'ordine e quindi con la join
INNER JOIN users AS c ON c.id = a.created_by
riesco a recuperare nome e cognome dello stesso estrapolando i valori dalla tabella "users"
Il campo "reports_to_id" invece, è presente solo nella tabella "users" e si riferisce al "supervisore" dell'utente che ha creato l'ordine.
ma come dicevo tutti gli utenti, normali e supervisori, sono elencati nella stessa tabella "users"
Per spiegarmi meglio, immagina la tabella in questo modo:
Campi
id - nome - cognome - supervisore(reports_to_id)
e come lista dati simile a
111 - Mario - Rossi - 222
222 - Paolo - Bianchi - 333
Quindi Mario Rossi dipenda da Paolo Bianchi, anche se sono elencati nella stessa tabella
Nella mia query, riesco ad estrarre l'id del supervisore (reports_to_id) che nel caso di Mario Rossi è 222
Io avrei bisogno di dire al sistema che se l'id è 222 deve visualizzarmi Paolo Bianchi
Se aggiungo una Join mi sballa i risultati perché cerca una corripondenza tra tutti i valori.
Per questo valutavo l'idea di inserire una seconda query che mi tiri fuori soltanto id, nome e cognome e farla lavorare nel ciclo while
della prima per fargli sostituire l'id con i valori "nome e "cognome"
Spero di essermi spiegato meglio
Grazie!