Hva forårsaker denne feilen?
Det beste stedet å starte er å forstå hva som forårsaker et problem. Feilen er hovedsakelig forårsaket når en kolonne med samme navn vises i mer enn en tabell når du utfører en sammenføyning.
For å illustrere hvordan denne feilen oppstår, antar vi at vi har to tabeller som vist i spørsmålene nedenfor:
Lag tabell my_table (Her har vi to tabeller: my_table og my_table_1. Merk at begge tabellene har en fullnavn -kolonne. Ignorer ID-kolonnen da dette er en auto-increment-kolonne.
Hvis vi prøver å kjøre en sammenføyning i de to tabellene:
Velg full_navn, lang, full_name, lønn fra my_table x indre bli med my_table_1 y på x.id = y.id;Ovennevnte spørring vil returnere en "tvetydig kolonnenavn" -feil. Selv om feilmeldingen kan variere avhengig av databasemotoren, er utgangen nær lik.
Følgende viser den samme feilen som er skrevet ut på PostgreSQL -databasemotoren.
Feil: kolonnereferanse "Fullnavn" er tvetydigÅ gjøre det fører til at SQL blir forvirret med hvilket fullnavn du refererer til.
SQL Løs tvetydig kolonne Navnfeil
For å løse denne feilen, kan vi legge til aliaser for kolonnene som forårsaker tvetydighet. For eksempel kan vi kjøre spørringen som:
Velg x.full_name, lang, y.full_name, lønn fra my_table x indre bli med my_table_1 y på x.id = y.id;Her legger vi til aliaser for kolonnene med x som representerer my_table og y som representerer my_table_1.
Ovennevnte skal løse feilen og la deg utføre sammenføyningen uten å endre kolonnenavn.
Lukking
Denne opplæringen dekket hvordan du løser feilen "tvetydig kolonne" i SQL.