sql >> Database teknologi >  >> RDS >> Sqlserver

Tvetydig kolonnenavnsfejl

Fordi ARTIFACTTYPE kan henvise til enten A.ARTIFACTTYPE eller B.ARTIFACTTYPE og serveren skal vide, hvilken du vil have, skal du bare ændre den til A.ARTIFACTTYPE og du burde være okay i dette tilfælde.

For at præcisere det, skal du angive aliaspræfikset hver gang kolonnenavnet er tvetydigt. Det er ikke dårlig praksis altid at bruge aliaspræfikser, da det gør det klart, hvilke kolonner der kommer fra hvilke tabeller, når du læser forespørgslen, og eliminerer problemer som denne.

Man kan undre sig over, hvorfor du skal skelne mellem, hvilken af ​​to kolonner du ønsker, når de begge refererer til den samme kolonne i samme tabel. Svaret er, at når du forbinder en tabel med sig selv, kan værdierne fra A.column og B.column være forskellige afhængigt af joinkriterierne (såsom det kan være tilfældet med en ydre joinforbindelse, hvor værdierne i en af ​​kolonnerne kan være null).



  1. Cake php Datasource-klassen MySQL kunne ikke findes

  2. Samling af flere poster efter dato

  3. MYSQL JOIN på flere tabeller giver ingen resultater

  4. Sådan bruger du .htaccess til smukke links