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]