Projekcja zapytania może mieć tylko jedno wystąpienie o podanej nazwie. Jak pokazuje twoja klauzula WHERE, masz kilka tabel z kolumną o nazwie ID. Ponieważ wybierasz *
Twoja projekcja będzie miała kilka kolumn zwanych ID. Albo byłoby, gdyby nie kompilator rzucający ORA-00918.
Rozwiązanie jest dość proste:będziesz musiał rozwinąć projekcję, aby jawnie wybrać nazwane kolumny. Następnie możesz pominąć zduplikowane kolumny, zachowując tylko (powiedzmy) COACHES.ID lub użyć aliasów kolumn:coaches.id as COACHES_ID
.
Być może wydaje ci się, że często piszesz, ale to jedyny sposób. Jeśli jest to dla ciebie pocieszenie, SELECT *
jest uważana za złą praktykę w kodzie produkcyjnym:jawnie nazwane kolumny są znacznie bezpieczniejsze.