QNA > C > Cosa Significa L'errore Sql 'Nome Colonna Ambiguo'?

Cosa significa l'errore SQL 'nome colonna ambiguo'?

"Nome colonna ambiguo" significa che state facendo riferimento a uno o più attributi che appartengono a più di una delle tabelle che state usando nella query, e non avete qualificato il riferimento all'attributo. Il motore SQL non sa quale volete.

Supponiamo che abbiate la seguente query:

Seleziona employee_name, department_id, department_name

from employee, department

where employee.department_id = department.department_id;

In questo esempio, la clausola "WHERE" qualifica correttamente la proprietà degli attributi department_id, ma la "SELECT" no. Da quale tabella proviene quella colonna? Il motore SQL non può dirlo.

In questo esempio, i valori sarebbero gli stessi, ma il motore SQL ha ancora bisogno di sapere da dove viene. È ambiguo.

Un caso più ovvio sarebbe se ci fosse un campo "nome" in entrambe le tabelle, e tu non lo qualificassi. In quel caso, "employee.name" è ovviamente diverso da "department.name". Ma non è necessario che i valori siano diversi. L'istruzione SQL dichiara ciò che stai cercando di selezionare, e questo significa che devi qualificare l'istruzione se è ambigua.

Di Wiedmann Balfour

Aizen trascendente sarebbe in grado di battere Yamamoto? :: Come sapere se il mio PC può eseguire un monitor da 240 Hz
Link utili