Sql server 在不同联接上的两个表之间选择相同的列

Sql server 在不同联接上的两个表之间选择相同的列,sql-server,join,Sql Server,Join,我有两张这样的桌子: 在这种情况下 ON dbo.MaterialDescriptions.Id = dbo.Joints.RightMaterialDescriptionId AND dbo.MaterialDescriptions.Id = dbo.Joints.LeftMaterialDescriptionId 我想在我的查询中选择RightMaterialDescriptionId和LeftMaterialDescriptionId的itemcode。我该怎么做?您需要使用不同的别

我有两张这样的桌子:

在这种情况下

ON dbo.MaterialDescriptions.Id = dbo.Joints.RightMaterialDescriptionId
AND dbo.MaterialDescriptions.Id = dbo.Joints.LeftMaterialDescriptionId 

我想在我的查询中选择
RightMaterialDescriptionId
LeftMaterialDescriptionId
的itemcode。我该怎么做?

您需要使用不同的别名连接表两次:

SELECT rmd.ItemCode as RightItemCode, lmd.ItemCode as LeftItemCode [, other columns...]
FROM dbo.Joints j
JOIN dbo.MaterialDescriptions rmd ON j.RightMaterialDescriptionId = rmd.Id
JOIN dbo.MaterialDescriptions lmd ON j.LeftMaterialDescriptionId = lmd.Id

注意:您可能希望使用
左联接
而不是
内部联接

您需要使用不同的别名联接表两次:

SELECT rmd.ItemCode as RightItemCode, lmd.ItemCode as LeftItemCode [, other columns...]
FROM dbo.Joints j
JOIN dbo.MaterialDescriptions rmd ON j.RightMaterialDescriptionId = rmd.Id
JOIN dbo.MaterialDescriptions lmd ON j.LeftMaterialDescriptionId = lmd.Id
注意:您可能希望使用
左连接
而不是
内部连接