[英]SQL Query and Return Two Row into One
我有三张表:
POST
: 职位信息POST_ID | REPORTS_TO
--------+-----------
1 | 4
2 | 1
3 | 1
4 | NULL
EMPLOYEE
: 记录哪个人在哪个岗位EMPLOYEE_ID | POST_ID | PERSON_ID
------------+---------+----------
1 | 1 | 1
2 | 2 | 2
3 | 3 | 3
4 | 4 | 4
PERSON
:关于该人的信息PERSON_ID | NAME
----------+-----
1 | BOB
2 | JIM
3 | FRANK
7 | PHIL
我想将结果返回为:
WorkerName | SupervisorName
-----------+---------------
BOB | PHIL
JIM | BOB
FRANK | BOB
PHIL | (NULL)
我试过这个,但它只返回 7 行。 我需要组合以下按postID
分组的结果,但随后我丢失了一半的值:
SELECT First_Name
FROM post
JOIN employee
ON employee.PostID = post.Supervisor_PostID
OR employee.PostID = post.PostID
JOIN person
ON person.PersonID = employee.PersonID
您需要使用post
s 两次加入person
表:一次用于工作人员(您通过桥接表employee
访问),另一个用于主管:
select pe1.name WorkerName, pe2.name SupervisorName
from post po
inner join employee em on em.post_id = po.post_id
inner join person pe1 on pe1.person_id = em.person_id
inner join person pe2 on pe2.person_id = po.reports_to
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.