开发者社区> 问答> 正文

如何在SQL查询中将多个FK更改为其自己的值/名称?

我在“任务”表中有一行,其中包含“ AssignTo”列和“ AssignFrom”列。该列与“雇员”表有关。在“员工”表中,我有“名称”列。如何通过获取员工姓名查询“任务”表?我知道联接,但每个表只引用一列。

编辑:“员工”表中的PK为OID

展开
收起
祖安文状元 2020-01-04 15:10:21 596 0
1 条回答
写回答
取消 提交回答
  • 您需要两个联接:

    select t.*, ef.name as from_name, et.name as to_name
    from task t left join
         employee ef
         on t.assignfrom = ef.name left join
         employee et
         on t.assignto = et.name;
    
    

    这样可以使用left join,如果分配字段为空,则不会丢失任何行。

    另外,您应该使用员工ID而不是连接名称。也许您应该重新审视数据模型。

    2020-01-04 15:10:34
    赞同 展开评论 打赏
问答分类:
SQL
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载