我正在使用 SQL Server 2012,我很难尝试检索在数据输入系统中的 2 个不同位置使用的字段。
我当前的 SQL 查询(摘录如下所示)使用 3 个表:
(1) dbo.TravelAgency
**Company TravelAgencyId CountryCode**
ABC Ltd 734 SE
TOM Co. Ltd 620 CZ
(2) dbo.市场
**CountryCode CountryName CountryGroup**
SE Sweden Scandinavia
CZ Czech Republic Central Europe
(3) dbo.ReservationStay
**Name TaProfileID1 TaProfileID2**
John 734 620
我的 SQL 查询是这样的:
USE MyDatabase
SELECT ......,
.......,
e.Company AS 'Tour Operator',
c.TaProfileID1,
................,
g.countryGroup AS 'Market'
................
FROM GuestNameInfo a
................................
LEFT JOIN TravelAgency e ON e.TravelagencyID = c.TaProfileID1
LEFT JOIN Market g ON e.CountryCode = g.CountryCode
当我运行这个查询时,我得到以下信息:
Name Tour Operator TaProfileID1 Market
John ABC Ltd 734 Scandinavia
我现在需要在查询中添加 TaProfileID2,以便我的输出变为:
Name Tour Operator TaProfileID1 Market Market 2
John ABC Ltd 734 Scandinavia Central Europe
如何添加“JOIN”来实现此目的?
最佳答案
只需使用不同的别名再次加入相同的表:
SELECT ......,
.......,
e.Company AS 'Tour Operator',
c.TaProfileID1,
................,
g.countryGroup AS 'Market'
g2.countryGroup AS 'Market 2'
................
FROM GuestNameInfo a
................................
LEFT JOIN TravelAgency e ON e.TravelagencyID = c.TaProfileID1
LEFT JOIN Market g ON e.CountryCode = g.CountryCode
LEFT JOIN TravelAgency e2 ON e2.TravelagencyID = c.TaProfileID2
LEFT JOIN Market g2 ON e2.CountryCode2 = g2.CountryCode
关于在数据条目的 2 个不同位置使用的表中同一列的 SQL 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26487243/