sql >> Databáze >  >> RDS >> Oracle

ORA-00918:sloupec nejednoznačně definovaný v SELECT *

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ší.



  1. Nodejs vyjadřuje a slibuje, že neudělá to, co očekávám

  2. Jak nastavit národní prostředí pro aktuální připojení v MySQL

  3. SQL Server převod varbinary na řetězec

  4. Převeďte sloupec Datetime z UTC na místní čas v příkazu select