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

Errore ambiguo del nome della colonna

Perché ARTIFACTTYPE può fare riferimento a A.ARTIFACTTYPE o B.ARTIFACTTYPE e il server deve sapere quale vuoi, basta cambiarlo in A.ARTIFACTTYPE e dovresti stare bene in questo caso.

Per chiarire, è necessario specificare il prefisso dell'alias ogni volta che il nome della colonna è ambiguo. Non è una cattiva pratica usare sempre i prefissi degli alias in quanto chiarisce quali colonne provengono da quali tabelle quando leggi la query ed elimina problemi come questo.

Ci si potrebbe chiedere perché è necessario distinguere tra quale delle due colonne si desidera quando si riferiscono entrambe alla stessa colonna nella stessa tabella. La risposta è che quando si unisce una tabella a se stessa, i valori di A.column e B.column possono essere diversi a seconda dei criteri di unione (come potrebbe essere il caso di un join esterno in cui i valori in una delle colonne possono essere nullo).