sql >> Base de Datos >  >> RDS >> Oracle

ORA-00918:columna definida de forma ambigua en SELECCIONAR *

La proyección de una consulta solo puede tener una instancia de un nombre determinado. Como muestra su cláusula WHERE, tiene varias tablas con una columna llamada ID. Porque está seleccionando * su proyección tendrá varias columnas llamadas ID. O lo habría sido si no fuera por el compilador lanzando ORA-00918.

La solución es bastante simple:tendrá que expandir la proyección para seleccionar explícitamente las columnas con nombre. Luego, puede omitir las columnas duplicadas, conservando solo (digamos) COACHES.ID o usar alias de columna:coaches.id as COACHES_ID .

Quizás eso le parezca mucho teclear, pero es la única manera. Si te sirve de consuelo, SELECT * se considera una mala práctica en el código de producción:las columnas con nombres explícitos son mucho más seguras.