错误“列含糊不清定义”列

时间:2018-08-02 12:12:10

标签: sql oracle

下面是SQL连接查询,用于列出列的所有记录:dname,ename和location。当我包含“位置”列时,会引发错误:“列定义不明确”

SQL> select dname,ename,location from emp e join dept d on d.deptno=e.deptno;

3 个答案:

答案 0 :(得分:4)

由于location存在于表(empdept)中,因此您需要表别名(ed)来显式定义列(d.dname, e.ename, e.location)的来源。

select d.dname, e.ename, e.location 
from emp e join 
     dept d 
     on d.deptno = e.deptno;

答案 1 :(得分:4)

每当查询中有多个表时,请限定所有列引用!这只是预防问题的好习惯。

这样做时,请使用表别名,该别名是所引用表的缩写。因此,我猜这是您的查询所要执行的操作:

select d.dname, e.ename, e.location
from emp e join
     dept d
     on d.deptno = e.deptno;

答案 2 :(得分:0)

如果使用的数据表2具有相同的列名,则必须指定表名和字段说明符 例如:“从产品p的内部联接订单中选择p.productName o在p.proID = o.proID上” 产品表的列表列是:proID,proName,proPrice 订单表的列表列为:proID,oid,proName,proPrice。 希望对您有所帮助!