SQL> select department_name
from hr.departments dept
where department_id IN (select department_id from hr.employees emp);
2 3
DEPARTMENT_NAME
------------------------------
Administration
Marketing
Purchasing
Human Resources
Shipping
IT
Public Relations
Sales
Executive
Finance
Accounting
已选择11行。
SQL> select department_name
from hr.departments dept, hr.employees emp
where dept.department_id = emp.department_id; 2 3
DEPARTMENT_NAME
------------------------------
Administration
Marketing
Marketing
Purchasing
Purchasing
Purchasing
Purchasing
Purchasing
Purchasing
Human Resources
Shipping
DEPARTMENT_NAME
------------------------------
Shipping
Shipping
Shipping
Shipping
Shipping
Shipping
Shipping
Shipping
Shipping
Shipping
Shipping
DEPARTMENT_NAME
------------------------------
Shipping
Shipping
Shipping
Shipping
Shipping
Shipping
Shipping
Shipping
Shipping
Shipping
Shipping
DEPARTMENT_NAME
------------------------------
Shipping
Shipping
Shipping
Shipping
Shipping
Shipping
Shipping
Shipping
Shipping
Shipping
Shipping
DEPARTMENT_NAME
------------------------------
Shipping
Shipping
Shipping
Shipping
Shipping
Shipping
Shipping
Shipping
Shipping
Shipping
Shipping
DEPARTMENT_NAME
------------------------------
IT
IT
IT
IT
IT
Public Relations
Sales
Sales
Sales
Sales
Sales
DEPARTMENT_NAME
------------------------------
Sales
Sales
Sales
Sales
Sales
Sales
Sales
Sales
Sales
Sales
Sales
DEPARTMENT_NAME
------------------------------
Sales
Sales
Sales
Sales
Sales
Sales
Sales
Sales
Sales
Sales
Sales
DEPARTMENT_NAME
------------------------------
Sales
Sales
Sales
Sales
Sales
Sales
Sales
Executive
Executive
Executive
Finance
DEPARTMENT_NAME
------------------------------
Finance
Finance
Finance
Finance
Finance
Accounting
Accounting
已选择106行。
SQL> select distinct department_name
from hr.departments dept, hr.employees emp
where dept.department_id = emp.department_id;
2 3
DEPARTMENT_NAME
------------------------------
Administration
Accounting
Purchasing
Human Resources
IT
Public Relations
Executive
Shipping
Sales
Finance
Marketing
已选择11行。
IN半链接改成关联,就得去从
那从2个表返回数据呢?能改写成半链接吗?
SQL> select distinct dept.department_name,emp.department_id
from hr.departments dept, hr.employees emp
where dept.department_id = emp.department_id; 2 3
DEPARTMENT_NAME DEPARTMENT_ID
------------------------------ -------------
Marketing 20
Accounting 110
Human Resources 40
IT 60
Administration 10
Executive 90
Public Relations 70
Finance 100
Purchasing 30
Shipping 50
Sales 80
已选择11行。
SQL> select dept.department_name, emp.department_id
from hr.departments dept
where dept.department_id in
(select emp.department_id from hr.employees emp) 2 3 4 ;
select dept.department_name, emp.department_id
*
第 1 行出现错误:
ORA-00904: "EMP"."DEPARTMENT_ID": 标识符无效
从多个表返回数据的关联,无法改成半链接。