2013-02-06 56 views
0
SELECT ENAME, EMP.JOB,DEPT.DNAME 
FROM EMP, DEPT 
WHERE EMP.JOB=DEPT.DNAME; 

這是給出的輸出爲「沒有行選擇」。從emp表和部門表加入作業列和Dname列

+2

關於你的表結構的一些信息? EMP.JOB是否應該等於DEPT> DNAME? – Matthew

+0

是的!我認爲在DEPT> DNAME中你錯位了>被「。」 ....無論如何我得到它非常感謝你 – Chay

回答

-1

我不知道你想要什麼 - 作業將永遠不等於部門名稱...以下是正確的連接-copy /粘貼運行和查看結果:

SELECT d.deptno, ENAME, JOB, DNAME 
    FROM scott.EMP e, scott.DEPT d 
WHERE e.deptno = d.deptno 
ORDER BY d.deptno 
/

FYI:在EMP .JOB = DEPT.DNAME將不會像原始問題/查詢中那樣正確。

+0

謝謝你的幫助我知道你給的答案,但我問的問題是正確的。 例如:在僱傭我有工作稱爲推銷員在部門表我有推銷員在Dname列。所以我想加入他們......無論如何我得到了它謝謝先生! – Chay

+0

@藝術你認爲這兩張桌子上都有deptno專欄,這絕對是合乎邏輯的,但這並不符合事實,在我看來,由於這個主意仍然是正確的,所以這仍然沒有理由降低答案。無論如何,因爲我們有太多downvoters在這個網站上給它+1賠償downvote。 – CloudyMarble

+0

@MeNoMore - 你是對的。我寫道,我假設用戶會談scott.emp表,而不是他的表。任何人如果冷靜下來,可能會閱讀其他人的頭腦,對SQL一無所知。 – Art

1

假設EMP.JOB=DEPT.DNAME是正確的(東西,我無法想象)您的查詢是正確實際上,你可以加入此類似:

SELECT ENAME, EMP.JOB,DEPT.DNAME 
FROM EMP inner join DEPT 
ON EMP.JOB=DEPT.DNAME; 

但這would'nt給其他esults比你的查詢,我想問題是你的混淆列,通常引用是通過一個id列完成的。

EMP.JOB這可能是開發商程序員例如將匹配DEPT.DNAME理念在這種情況下將是例如開發部是某種奇怪的,我想你需要在第二次看如何你桌子相互連接。

生成從數據庫視覺圖可能是有幫助的,採取alook這些線來回進一步的信息:Tools to generate a database diagram/ER diagram from existing Oracle database?

+0

非常感謝你@menomore ....我接受這是一個蹩腳的問題 – Chay