Die Projektion einer Abfrage kann nur eine Instanz eines bestimmten Namens haben. Wie Ihre WHERE-Klausel zeigt, haben Sie mehrere Tabellen mit einer Spalte namens ID. Weil Sie * auswählen Ihre Projektion hat mehrere Spalten namens ID. Oder es hätte es gegeben, wenn der Compiler nicht ORA-00918 geschleudert hätte.
Die Lösung ist ganz einfach:Sie müssen die Projektion erweitern, um explizit benannte Spalten auszuwählen. Dann können Sie entweder die doppelten Spalten weglassen und nur (sagen wir) COACHES.ID beibehalten oder Spaltenaliase verwenden:coaches.id as COACHES_ID .
Vielleicht kommt Ihnen das wie viel Tipparbeit vor, aber es ist der einzige Weg. Wenn es dich tröstet, SELECT * gilt im Produktionscode als schlechte Praxis:explizit benannte Spalten sind viel sicherer.