【发布时间】:2021-09-02 19:42:36
【问题描述】:
亲爱的大家都有经验,
我有 2 个表尝试加入条件。第一张桌子。员工表: select emp_id, emp_code, section_id, party_id, admin_type from employee
ID | Emp_Code | Section_ID | Party_ID | Admin_Type
1 | emp01 | sec01 | part01 | Null
2 | emp02 | sec01 | part01 | Null
3 | emp03 | sec02 | part02 | Null
4 | emp04 | sec01 | part01 | A
5 | emp05 | sec02 | part02 | B
6 | emp06 | sec01 | part01 | C
第二个表是Admin组
ID | Admin_Type | Group
1 | A | 1
2 | B | 2
3 | C | 1
数据很复杂,值很多,所以我尝试通过匹配来加入每个emp中的条件 每个 emp_code 中的 section_id 和 party_id(将值固定到 where 子句中)。
select g.admin_type, g.group, e.emp_code as Admin from group_admin as g
left join employee e on e.admin_type = g.admin_type
where e.section_id in (select section_id from employee where emp_code = 'emp01')
and e.party_id = (select party_id from employee where emp_code = 'emp01')
and g.group = '1' and admin_type is not null;
上面查询的结果是 emp_code = emp01' 的管理员,如下表所示
Admin_Type | Group | Admin
A | 1 | emp04
C | 1 | emp06
我尝试通过为所有 emp_code 与 empcode 连接绘制一个表来构建 oracle 存储过程,其中 admin_code 只有相同的 section_id 和 party_id,如下所示。
Emp_Code | Section_ID | Party_ID | Admin_Type --- | Admin | Group | Admin_Type
emp01 | sec01 | part01 | NULL --- | emp04 | 1 | A
emp01 | sec01 | part01 | NULL --- | emp06 | 1 | C
emp02 | sec01 | part01 | NULL --- | emp04 | 1 | A
emp02 | sec01 | part01 | NULL --- | emp06 | 1 | C
emp03 | sec02 | part02 | NULL --- | emp05 | 1 | B
【问题讨论】:
-
这里没有问题。你问的是什么问题?
-
请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。
-
我的问题是尝试使用与上一张表相同的 section_id 和 party_id 编写 sql join。