2014-05-01 80 views
0

幫我解釋一下這個問題的含義。帶條件的SELECT子句

「查找員工姓名和部門名稱的所有組合。」

對於我的表

//EMPLOYEE 
E#  ENAME  DNAME 
----------------------------- 
1   JOHN   IT 
2   MAY   SCIENCE 
3   SITI  SCIENCE 

//DEPARTMENT 
DNAME 
------------ 
RESEARCH 
    IT 
SCIENCE 

只是我的理解。這個問題想要我做什麼? 我用下面的查詢

SELECT ENAME,DNAME FROM EMPLOYEE; 

回答

1

它有點不清楚,但要找到您將創建一個Cartesian product.

select 
    e.ename, d.dname 
from 
    employee e, 
    dname d 

甲骨文所有組合支持上面的SQL,並使用CROSS JOIN也意味着同樣的事情。

select 
    e.ename, d.dname 
from 
    employee e cross join dname d 

此連接在employee表中的每一行的dname表彼此一行。

這將產生:

ENAME  DNAME 
--------------------- 
JOHN   IT 
JOHN   SCIENCE 
JOHN   RESEARCH 
MAY   SCIENCE 
MAY   RESEARCH 
MAY   IT 
SITI  SCIENCE 
SITI  IT 
SITI  RESEARCH 
+0

其實我只是想知道的問題意思,我沒想到你在這裏發佈代碼。如果我知道這樣的解釋,我應該能夠編碼。無論如何謝謝你 – user3553846

0

我的理解是,他們要你創建一個笛卡爾:

select 
    EMPLOYEE.ENAME 
    ,DEPARTMENT.DNAME 
FROM EMPLOYEE, DEPARTMENT 
0

這應該工作

select employee.ENAME,department.DNAME from employee,department