De projectie van een query kan slechts één instantie van een bepaalde naam hebben. Zoals je WHERE-component laat zien, heb je verschillende tabellen met een kolom met de naam ID. Omdat u *
selecteert uw projectie heeft verschillende kolommen met de naam ID. Of het zou zijn geweest als de compiler ORA-00918 niet had geslingerd.
De oplossing is vrij eenvoudig:u zult de projectie moeten uitbreiden om benoemde kolommen expliciet te selecteren. Dan kun je ofwel de dubbele kolommen weglaten, met behoud van (bijvoorbeeld) COACHES.ID of kolomaliassen gebruiken:coaches.id as COACHES_ID
.
Misschien vind je dat veel typen, maar het is de enige manier. Als het enig comfort is, SELECT *
wordt in productiecode als een slechte praktijk beschouwd:kolommen met expliciete namen zijn veel veiliger.