我有一个包含客户数据的表,我必须将它与两个引用表连接起来才能获得所需的文本值。所以有人不知何故没有将所有数据包含在一个引用表中,所以对于某些数据,我需要从另一个表中获取值。
第一个包含数据的表
ID ClientID CompanyID
1 199 80
2 187 91
3 85 1001
4 83 1145
可以看到的公司 ID 范围为 80 - 1200
问题是,只有大于 1000 的值存储在公司的引用表中,所以
tblCompanies
CompanyID CompanyName
1001 Microsoft
1002 Apple
1145 HP
其余的公司名称存储在另一个表中
tblReference
ID FldName Label
80 Company Adobe
81 Company Amazon
91 Company Pixel
tblReference 有很多其他数据,但在大多数情况下,它仅引用 80 到 90 之间的 ID,所有其他 CompanyID 都来自 tblCompanies....
我怎样才能加入这两个表?没有重复记录。我尝试了 UNION 和 UNIOAN ALL 但没有成功
最佳答案
首先联合你的tblcompanies
和 tblReferences
表在一起,然后加入:
SELECT t1.id, t1.clientid, t1.CompanyID, t2.CompanyName
FROM firstTable as t1
INNER JOIN
(
SELECT companyID, companyName FROM tblCompanies
UNION ALL
SELECT id, label FROM tblReference WHERE fldname = 'Company'
) t2 ON t1.CompanyID = t2.CompanyId
关于sql - 左连接两个引用表以获得正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46183212/