Oracle 组合来自不同表的列值
我卡住了。我有两个表-看图片1,我想建立查询,这将给我的结果-它显示在图片2 我有两个查询,我想把它们混在一起,从第2张图片中获得列表。请帮助我,如何构建查询Oracle 组合来自不同表的列值,oracle,union-all,Oracle,Union All,我卡住了。我有两个表-看图片1,我想建立查询,这将给我的结果-它显示在图片2 我有两个查询,我想把它们混在一起,从第2张图片中获得列表。请帮助我,如何构建查询 查询一:从部门id在90到110之间的部门中选择部门名称、部门id 查询2:从部门id在90到110之间的员工中选择姓氏、部门id 我的样本表的输出 +-------+----+------------+ | KING | 10 | ACCOUNTING | | BLAKE | 30 | SALES | | CLARK |
- 查询一:从部门id在90到110之间的部门中选择部门名称、部门id李>
- 查询2:从部门id在90到110之间的员工中选择姓氏、部门id李>
+-------+----+------------+
| KING | 10 | ACCOUNTING |
| BLAKE | 30 | SALES |
| CLARK | 10 | ACCOUNTING |
| JONES | 20 | RESEARCH |
| SCOTT | 20 | RESEARCH |
+-------+----+------------+
查询:
with departments (department_id, department_name) as (
select 90, 'Executive' from dual union all
select 100, 'Finance' from dual union all
select 110, 'Accounting' from dual
),
employees (employee_id, last_name, department_id) as (
select 1003, 'King' , 90 from dual union all
select 1005, 'De Hann' , 90 from dual union all
select 1009, 'Gietz' , 110 from dual union all
select 1013, 'Popp' , 100 from dual union all
select 1014, 'Chen' , 100 from dual union all
select 1015, 'Higgins' , 110 from dual union all
select 1029, 'Greenberg', 100 from dual union all
select 1040, 'Kochar' , 90 from dual union all
select 1043, 'Faviet' , 100 from dual union all
select 1045, 'Urman' , 100 from dual union all
select 1049, 'Sciarra' , 100 from dual
)
-- end input data; begin actual query --
select c_name, department_id from
( select department_name as c_name, department_id, 0 as categ from departments
union all
select ' ' || last_name as c_name, department_id, 1 from employees
order by department_id, categ, c_name
);
结果:
C_NAME DEPARTMENT_ID
------------- -------------
Executive 90
De Hann 90
King 90
Kochar 90
Finance 100
Chen 100
Faviet 100
Greenberg 100
Popp 100
Sciarra 100
Urman 100
Accounting 110
Gietz 110
Higgins 110
你不需要“与…”部分;只需在两个分解子查询(在“输入数据”之后)之后使用SELECT语句开始的查询。我甚至在每个部门为您按姓氏订购;如果不需要,只需从ORDERBY子句中删除“c_name”
我称第一列为c_name;你可以随意称呼它,但当它也包含员工的姓氏时,叫它部门的名字对我来说没有多大意义。若要随意命名,请将SELECT语句从
选择c_名称,部门id
更改为选择c_名称作为任意名称,部门id…
谢谢,是否有其他方式的可行任务列表?部门名称------部门ID------部门ID------部门Uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。我将很快发布解决方案。回答得很好。我从未使用过UNION,可能是因为我不知道它的用法。谢谢你更好的回答。谢谢你的帮助。这个答案就是我问的。
C_NAME DEPARTMENT_ID
------------- -------------
Executive 90
De Hann 90
King 90
Kochar 90
Finance 100
Chen 100
Faviet 100
Greenberg 100
Popp 100
Sciarra 100
Urman 100
Accounting 110
Gietz 110
Higgins 110