SQL选择联接列别名

SQL选择联接列别名,sql,sql-server,Sql,Sql Server,提前感谢您的帮助: [People]表有两列: 拟人 人名 [婚姻]表格有三列: 结婚纪念日 人格 拟人的 我要选择以下列: 结婚纪念日 PersonName(用于personIDa) PersonName(用于personIDb) 我想我需要在SELECT语句中使用JOIN,但我不确定如何为每个PersonName分配唯一的别名。这是我到目前为止所做的(不起作用): 再次感谢……我想你是想这么做 SELECT m.[MarriageID], pa.[PersonName] AS

提前感谢您的帮助:

[People]
表有两列:

  • 拟人
  • 人名
[婚姻]
表格有三列:

  • 结婚纪念日
  • 人格
  • 拟人的
我要选择以下列:

  • 结婚纪念日
  • PersonName(用于personIDa)
  • PersonName(用于personIDb)
我想我需要在
SELECT
语句中使用
JOIN
,但我不确定如何为每个
PersonName
分配唯一的别名。这是我到目前为止所做的(不起作用):


再次感谢……

我想你是想这么做

SELECT 
m.[MarriageID], 
pa.[PersonName] AS aName,
pb.[PersonName] AS bName  
FROM [Marriages] m
JOIN [People] pa ON m.[PersonIDa] = pa.[PersonID]  
JOIN [People] pb ON m.[PersonIDb] = pb.[PersonID];

这和你想要达到的目标相符吗

SELECT m.[MarriageID], peopleA.[PersonName] AS aName, peopleB.[PersonName] AS bName  
FROM [Marriages]  M
JOIN [People] peopleA ON m.[PersonIDa] = peopleA.[PersonID]  
JOIN [People] peopleB ON m.[PersonIDb] = peopleB.[PersonID]  

您将需要以下内容:

Select MarriageID, a.PersonName, b.PersonName
From Marriages m
Join People a On a.PersonID = m.Person1ID 
Join People b on b.PersonID = m.Person2ID 

别忘了你需要什么类型的连接…“内连接”/“左外连接”/“右外连接”/“交叉连接”


谢谢大家,;你的建议非常有效。我试图在SELECT语句中为重复的列创建别名,而本应在JOIN语句中为重复的表创建别名

对于遇到此问题的任何其他人:

SELECT  
[TABLE1 NAME].[TABLE1 COLUMN],  
(TABLE2 ALIAS1).[TABLE2 COLUMN],  
(TABLE2 ALIAS2).[TABLE2 COLUMN],  
FROM [TABLE1 NAME]  
JOIN [TABLE2 NAME] (TABLE2 ALIAS1) ON [TABLE1 NAME].[TABLE1 MATCHING COLUMN] = (TABLE2 ALIAS1).[TABLE2 MATCHING COLUMN]  
JOIN [TABLE2 NAME] (TABLE2 ALIAS2) ON [TABLE1 NAME].[TABLE1 MATCHING COLUMN] = (TABLE2 ALIAS2).[TABLE2 MATCHING COLUMN]  

别名是在JOIN语句中创建的,并应用于SELECT语句中使用别名的位置,而不是相反。

只要不使用SQL关键字或非西方字符,表名和列名就不需要方括号。您真的相信人们能理解这一点吗?您使原始查询变得更加复杂。写下正确的SQL语句,而不是用无效的SQL语法来迷惑人们,怎么样
SELECT MarriageID, a.PersonName, b.PersonName
FROM Marriages m JOIN People a ON a.PersonID = m.Person1ID 
                 JOIN People b ON b.PersonID = m.Person2ID 
SELECT  
[TABLE1 NAME].[TABLE1 COLUMN],  
(TABLE2 ALIAS1).[TABLE2 COLUMN],  
(TABLE2 ALIAS2).[TABLE2 COLUMN],  
FROM [TABLE1 NAME]  
JOIN [TABLE2 NAME] (TABLE2 ALIAS1) ON [TABLE1 NAME].[TABLE1 MATCHING COLUMN] = (TABLE2 ALIAS1).[TABLE2 MATCHING COLUMN]  
JOIN [TABLE2 NAME] (TABLE2 ALIAS2) ON [TABLE1 NAME].[TABLE1 MATCHING COLUMN] = (TABLE2 ALIAS2).[TABLE2 MATCHING COLUMN]