En frågas projektion kan bara ha en instans av ett givet namn. Som din WHERE-sats visar har du flera tabeller med en kolumn som heter ID. Eftersom du väljer *
din projektion kommer att ha flera kolumner som kallas ID. Eller så hade det varit om det inte vore för kompilatorn som slungade ORA-00918.
Lösningen är ganska enkel:du måste expandera projektionen för att explicit välja namngivna kolumner. Sedan kan du antingen utelämna dubblettkolumnerna, bara behålla (säg) COACHES.ID eller använda kolumnalias:coaches.id as COACHES_ID
.
Det kanske slår dig som mycket att skriva, men det är det enda sättet. Om det är någon bekvämlighet, SELECT *
betraktas som dålig praxis i produktionskod:explicit namngivna kolumner är mycket säkrare.