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.