2014-03-12 86 views
1

我已經在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
select * from emp e,department d 
    where d.dname = 'cleaning' 
     and e.dno = d.dnum; 

工作正常

剛剛得到的as RIF。它是用來與列

更新加入

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

在'where'子句中使用明確的'JOIN'運算符而不是過時的隱式連接也會更好 - 特別是對於初學者 –

+0

@a_horse_with_no_name同意明確的JOIN更好閱讀 – StanislavL

+0

@StanislavL我怎麼能使用加入這裏? – user3408958

1

Oracle不使用語句AS確定表的別名不支持。在SQL standart中,它只能用於查詢結果中列的更改名稱。但是,大多數DB系統支持as也喜歡在查詢中爲表創建別名。