首页 > 解决方案 > 如何从 2 个 ID 存储在 sql 表 3 中的两个表中获取名称

问题描述

我想使用 ConcerenedId 在一列中获取名称。

在此处输入图像描述

在此表(分类帐)中,ConcerenedId 包含客户和供应商的 id,我想得到他们的名字。

这是表格(客户)

在此处输入图像描述

这是表格(供应商)

在此处输入图像描述

这是我所做的

  select l.LedgerId,l.ConcernedId,l.Amount,v.Name,l.Type,c.Name from Ledgers l 
  left join Vendors v on l.ConcernedId=v.VendorId 
  left join Customers c on l.ConcernedId=c.CustomerId

这是它的输出

在此处输入图像描述

输出应该像 在此处输入图像描述

如果有人知道如何解决它,请提供帮助。谢谢

标签: sqljoin

解决方案


如果您的数据库是 SQLServer,那么您将如何获得解决方案:

select l.LedgerId
       , l.ConcernedId
       , l.Amount
       , ISNULL(v.Name, c.Name) Name
       , l.Type
from Ledgers l 
left join Vendors v on l.ConcernedId=v.VendorId 
left join Customers c on l.ConcernedId=c.CustomerId

您可以使用 ISNULL 函数。

这是一个演示:

演示

如果您在这里使用其他数据库,您可以检查要使用的功能:https ://www.w3schools.com/sql/sql_isnull.asp


推荐阅读