sql >> Database >  >> RDS >> Sqlserver

Dubbelzinnige kolomnaamfout

Omdat ARTIFACTTYPE kan verwijzen naar ofwel A.ARTIFACTTYPE of B.ARTIFACTTYPE en de server moet weten welke je wilt, verander het gewoon in A.ARTIFACTTYPE en in dit geval zou het goed moeten komen.

Ter verduidelijking moet u het aliasvoorvoegsel opgeven wanneer de kolomnaam dubbelzinnig is. Het is geen slechte gewoonte om altijd alias-prefixen te gebruiken, omdat het duidelijk maakt welke kolommen uit welke tabellen komen wanneer u de query leest, en problemen zoals deze elimineert.

Je kunt je afvragen waarom je onderscheid moet maken tussen welke van de twee kolommen je wilt als ze allebei naar dezelfde kolom in dezelfde tabel verwijzen. Het antwoord is dat wanneer u een tabel met zichzelf samenvoegt, de waarden van A.column en B.column kunnen verschillen, afhankelijk van de join-criteria (zoals het geval kan zijn met een outer join waarbij waarden in een van de kolommen kunnen worden null).



  1. Is er een database-engine die door RegEx gespecificeerde query-veldbeperkingen mogelijk maakt?

  2. Docker - Voer Apache uit op host en container voor verschillende websites

  3. Vraag Oracle om details van ORA-codefouten

  4. Referentie-alias in WHERE-component