クエリのプロジェクションは、指定された名前のインスタンスを1つだけ持つことができます。 WHERE句が示すように、IDという列を持つテーブルがいくつかあります。 *
を選択しているため 投影にはIDと呼ばれるいくつかの列があります。あるいは、コンパイラがORA-00918を投げつけていなかったとしたら。
解決策は非常に簡単です。名前付きの列を明示的に選択するには、射影を拡張する必要があります。次に、重複する列を除外して、(たとえば)COACHES.IDだけを保持するか、列エイリアスを使用することができます:coaches.id as COACHES_ID
。
おそらくそれは多くのタイピングとしてあなたを襲うでしょう、しかしそれは唯一の方法です。よろしければ、SELECT *
実稼働コードでは悪い習慣と見なされています。明示的に名前が付けられた列の方がはるかに安全です。