Projekce dotazu může mít pouze jednu instanci daného jména. Jak ukazuje vaše klauzule WHERE, máte několik tabulek se sloupcem nazvaným ID. Protože vybíráte *
vaše projekce bude mít několik sloupců nazývaných ID. Nebo by bylo, nebýt kompilátoru vrhajícího ORA-00918.
Řešení je poměrně jednoduché:budete muset rozšířit projekci, abyste explicitně vybrali pojmenované sloupce. Potom můžete duplicitní sloupce vynechat a zachovat pouze (řekněme) COACHES.ID nebo použít aliasy sloupců:coaches.id as COACHES_ID
.
Možná vám to připadá jako hodně psaní, ale je to jediný způsob. Pokud je to pohodlné, SELECT *
je považováno za špatný postup v produkčním kódu:explicitně pojmenované sloupce jsou mnohem bezpečnější.