我试图将两个不同的字段连接到第三个查找表中的同一字段。我的数据结构如下:
Investments table:
Investment_ID
Company_Country_Code (e.g., US, UK, AU, FR)
Fund_Country_Code (e.g., US, UK, AU, FR)
Country Lookup Table:
Country_Code (e.g., US, UK, AU, FR)
Country_Name (e.g., United States, United Kingdom, Australia, France)
我想将Company_Country_Code和Fund_Country_Code加入国家/地区查找表中的Country_Code表,并拉出相应的Country_Names。我希望数据输出如下:
(Investment_ID, Company_Country_Name, Fund_Country_Name)
1, United States, France
2, United Kingdom, Australia
3, France, United States
是否有一种特殊的联接来实现这一目标?
谢谢!
答案 0 :(得分:0)
这一切都取决于你想要的......如果你想过滤掉两个表中没有的任何结果,那么使用INNER JOIN ..如果你想加入而不过滤使用LEFT JOIN
SELECT i.Investment_ID, i.Company_Country_Name, i1.Fund_Country_Name
FROM country_lookup cl
JOIN investments i ON i.Company_Country_Code = cl.Country_Code
JOIN investments i1 ON i1.Fund_Country_Code = cl.Country_Code
没有过滤数据,你可以用左连接这样做
SELECT i.Investment_ID, i.Company_Country_Name, i1.Fund_Country_Name
FROM country_lookup cl
LEFT JOIN investments i ON i.Company_Country_Code = cl.Country_Code
LEFT JOIN investments i1 ON i1.Fund_Country_Code = cl.Country_Code
答案 1 :(得分:0)
没什么特别的 - 只做两个连接:
SELECT
i.Investment_ID,
c.Country_Name as Company_Country_Name,
f.Country_Name as Fund_Country_Name
FROM
Investments i
JOIN
Country c ON i.Company_Country_Code = c.Country_Code
JOIN
Country f ON i.Fund_Country_Code = f.Country_Code