如何在一个表中选择具有两列匹配值的记录?

时间:2019-04-26 05:34:26

标签: c# sql-server

我正在在线创建一个请求表,员工在系统中生成请求,但他/她的老板只能查看在他下工作的员工的请求。

例如:在一个组织中,有很多员工在1位老板的领导下工作。

---------------------
|EmpNo   |BossNo    |
---------------------
|011     |001       |
|012     |001       |
|013     |001       |
|014     |002       |
---------------------

在上表方案中,如果员工(012)将生成任何请求,则只有老板(001)能够查看该请求,与员工(014)相同,则仅生成老板(002)能够查看并接受该请求。

我想为此创建SQL查询。但是我无法为此创建查询。 下面是查询

select e1.empno, e1.bossno
  from employeedetails as e1
  inner join employeedetails as e2
    on e1.empno= e2.empno
   and e1.bossno= e2.bossno
  group by e1.empno, e1.bossno
  order by e1.empno, e1.bossno

2 个答案:

答案 0 :(得分:0)

因为两个表都检索相同的值,然后将连接用作e1.empno= e2.empno and e1.bossno= e2.bossno

我是这样认为的:

e1.empno= e2.empno and e1.bossno= e2.bossno

答案 1 :(得分:0)

类似这样的东西:

SELECT request.Info, request.empno, empDetails.EmployeeName
FROM requestTable as Request
    INNER JOIN employeedetails AS empDetails ON Request.empno = empDetails.empno
WHERE empDetails.bossno = @IdOfLoggedInEmployee