为什么查询不起作用?

时间:2014-03-12 08:26:34

标签: sql oracle

我在sqlfiddle上制作了架构。

我是数据库的初学者。

http://sqlfiddle.com/#!4/21535

我想让清洁部门的所有员工

select * from emp,department 
  where dname = 'cleaning' 
        and dno = dnum;

select * from emp e,department d
  where d.dname = 'cleaning' 
        and e.dno = d.dnum; 

select * from emp as e,department as d
  where d.dname = 'cleaning' 
        and e.dno = d.dnum;

但是第三个查询无效。为什么呢?

我正在阅读Fundamentals_of_Database_Systems。(Elmasri)一书

有许多查询使用了as

我错了吗?

2 个答案:

答案 0 :(得分:2)

select * from emp  e,department  d
  where d.dname = 'cleaning' 
        and e.dno = d.dnum;

工作正常

摆脱as。它与列

一起使用

使用加入更新

select * from emp  e JOIN department  d ON e.dno = d.dnum
  where d.dname = 'cleaning';

答案 1 :(得分:1)

Oracle不支持使用语句AS来确定表的别名。在SQL标准中,它只能用于查询结果中列的更改名称。但是,大多数数据库系统都支持as,就像在查询中为表创建别名一样。