带条件的SELECT子句

时间:2014-05-01 15:22:35

标签: sql oracle

帮我解释一下这个问题是什么意思。

"查找员工姓名和部门名称的所有组合。"

我的桌子

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

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

仅仅是为了我的理解。我想问我的问题是什么? 我使用了以下查询

SELECT ENAME,DNAME FROM EMPLOYEE;

3 个答案:

答案 0 :(得分:1)

有点不清楚,但要找到所有组合,你会创建一个Cartesian product.

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

Oracle支持上面的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

答案 1 :(得分:0)

我的理解是他们希望你创建一个笛卡尔:

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

答案 2 :(得分:0)

这应该有效

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