gpt4 book ai didi

sql-server - 当 2 列的数据匹配时选择记录

转载 作者:行者123 更新时间:2023-12-03 11:19:20 25 4
gpt4 key购买 nike

我有两个表,如下所示:

 -----------------------
|EmpNo|Complaint |
-----------------------
|9091 |Change required|
|9092 |No change |
|9093 |Changes done |
-----------------------

上表包含员工编号和他的投诉。

我有另一个表,其中包含员工的各种详细信息,如下所示。

-------------------------------
|EmpNo|EmailID |EmpBossNO|
-------------------------------
|9091 |abc@gmail.com|9092 |
|9092 |xyz@gmail.com|9093 |
|9093 |mno@gmail.com|9099 |
-------------------------------

在这里,如果 Empno:9091 提出任何投诉,那么一封邮件将发送给他的 boss,说明投诉是由您的员工提出的,您必须接受它,以便我想获取员工老板的 EmailID,为此我需要一个 SQL 查询。我尝试了此处显示的查询,但它不起作用。

select EmpEmailID
from tblComplaint
inner join tblEmpMaster on tblEmpMaster.EmpNo = tblComplaint.EmpPSNo
where tblComplaint.EmpPSNo = tblEmpMaster.EmpBossNo

我想要这样的输出...如果 EmpNo:9091 提出投诉,那么它将返回他老板的 EmailID,即 xyz@gmail.com

最佳答案

您在 tblComplainttblEmpMaster 表之间加入了正确的轨道。但是,您需要额外的加入 tblEmpMaster 来为每个员工投诉带来老板的电子邮件。

SELECT
c.EmpNo,
c.Complaint,
COALESCE(e2.EmailID, 'NA') AS boss_email
FROM tblComplaint c
INNER JOIN tblEmpMaster e1
ON c.EmpNo = e1.empNo
LEFT JOIN tblEmpMaster e2
ON e1.EmpBossNO = e2.EmpNo;

enter image description here

Demo

我在上面使用了左自连接,以防给定员工没有老板(例如,最高级别的老板)。在这种情况下,我为老板电子邮件显示 NA

关于sql-server - 当 2 列的数据匹配时选择记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56033748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com