我将HBase DB与phoenix一起使用,我有3个表,其中两个是Main表,它们之间有多对多的关系,由第三个表映射。
员工
EmpID EmpName
1 Robert
2 John
3 Sansa
4 Ned
5 Tyrion
6 George
7 Daenerys
8 Arya
9 Cersie
10 Catelyn
部门
DepID DepName
1 Hardware
2 Software
3 Admin
4 HR
部门员工映射
ID DepID EmpID
1 1 2
2 1 6
3 2 1
4 3 5
5 3 6
6 4 3
7 4 7
8 4 10
9 4 5
我想获取管理部门中所有员工的姓名和部门,但是我想要属于其他部门但不属于任何部门的那些员工的详细信息,这些数据应显示为结果集中为NULL仅显示管理部门的值,并且如果员工属于多个部门,则结果集应包含管理部门的值,而另一个将被忽略,结果集将类似于
Emp Name Dep Name
Robert NULL
John NULL
Sansa NULL
Ned NULL
Tyrion Admin
George Admin
Daenerys NULL
Arya NULL
Cersie NULL
Catelyn Admin
答案 0 :(得分:0)
使用2个LEFT JOIN并在针对Department的联接中包括对“ Admin”的过滤
SELECT DISTINCT e.empname, d.depname
FROM Employee e
LEFT JOIN Department_Employee_Mapping x ON x.empid = e.id
LEFT JOIN Departmentd ON d.id = x.depid AND d.id = 3