La proiezione di una query può avere solo un'istanza di un determinato nome. Come mostra la tua clausola WHERE, hai diverse tabelle con una colonna chiamata ID. Perché stai selezionando *
la tua proiezione avrà diverse colonne chiamate ID. O lo sarebbe se non fosse stato per il compilatore che lancia ORA-00918.
La soluzione è abbastanza semplice:dovrai espandere la proiezione per selezionare esplicitamente le colonne con nome. Quindi puoi omettere le colonne duplicate, conservando solo (ad esempio) COACHES.ID o utilizzare alias di colonna:coaches.id as COACHES_ID
.
Forse ti sembra un sacco di digitazione, ma è l'unico modo. Se può essere di conforto, SELECT *
è considerata una cattiva pratica nel codice di produzione:le colonne con nome esplicito sono molto più sicure.