gpt4 book ai didi

sql - 基本SQL语句,从员工表中选择员工姓名

转载 作者:行者123 更新时间:2023-12-02 22:28:41 24 4
gpt4 key购买 nike

这是要求

我有如下两个表,OrderList 是一个数据表,其中包含 3 个字段存储 StaffId,它是来自 staff 表的外键。请注意,某些记录在此表中可能没有值。

订单列表

OrderId Marketing_Staff_ID Finance_Staff_Id ManagerId
1 STAFF001 STAFF002 STAFF003
2 STAFF005 STAFF003
3 STAFF004 STAFF004 STAFF003
4 STAFF001 STAFF002 STAFF003
5 STAFF001 STAFF007

员工

Staff_Id Staff_Name
STAFF001 Jack C.K.
STAFF002 William. C
STAFF005 Someone

我想写一个SQL语句也可以从OrderList中为每条记录选择员工姓名,(对于这些没有员工ID的记录,在名称字段中留下N/A)

OrderId Mkt StaffID Name       Finance StaffId  Name      ManagerId, Name
1 STAFF001 Jack C.K. STAFF002 William. STAFF003 Chan.Chi

那我怎么写SQL呢?左加入还是什么?

非常感谢,我真的是SQL初学者。

最佳答案

您需要多个 LEFT JOIN:

select ol.orderid,
ol.marketing_staff_id,
coalesce(ms.staff_name, 'n/a') as marketing_name,
ol.finance_staff_id,
coalesce(fi.staff_name, 'n/a') as finance_name
from orderlist as ol
left join staff as ms on ms.staff_id = ol.marketing_staff_id
left join staff as fi on fi.staff_id = ol.finance_staff_id

我会留给你来为经理添加连接。

以上是 ANSI SQL,应该适用于每个 DBMS。您的 DBMS 有可能不支持 coalesce 函数,该函数只是将 NULL 值替换为不同的值。在这种情况下,您需要查看 DBMS 的手册。

关于sql - 基本SQL语句,从员工表中选择员工姓名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12596139/

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