如何加入 sql 服务器中的多个列

How to join on multiple columns in sql server

我有一个名为 hierarchylevel 和 Resourcelvel 的 table,数据如下所示:

等级

NTLogin    PreferredName   NTLevel1    NTLevel2    NTLevel3  NTLevel4   NTLevel5
Sam_peter  Peter, Sam      Geroge_Sam  Tom_Grifith James_P   Scott_Olsz Todd_L
Temuzin_P  P,Temuzin       George_Sam  Tom_Grifith James_P   Scott_Olsz Todd_L

资源级别

IndusName    NTLogin     PreferredName
HCMR         James_P     P, James
TTBS         Scott_Olsz  Olsz, Scott
DAOP         George_Sam  Sam, George
BFSI         Prat_Matt   Matt, Prat

现在我想获取 Indusname,其中来自 Resourcelevel 的 Ntlogin 在 HierarchyLevel 中的任一级别都匹配。

例如,上述示例数据的输出应如下所示:

IndusName        NTLogin     
 HCMR            James_P     
 TTBS            Scott_Olsz  
 DAOP            George_Sam
SELECT r.IndusName, r.NTLogin
FROM ResourceLevel r
INNER JOIN HierarchyLevel h
ON r.NTLogin IN (h.NTLevel1, h.NTLevel2, h.NTLevel3, h.NTLevel4, h.NTLevel5)

ON r.NTLogin = h.NTLevel1 OR r.NTLogin = h.NTLevel2 OR r.NTLogin = h.NTLevel3 OR r.NTLogin = h.NTLevel4 OR r.NTLogin = h.NTLevel5

您可以使用任何逻辑条件连接两个表。