SQL SELECT 连接列别名

标签 sql sql-server

预先感谢您的帮助:

[People]表有两列:

  • 人员ID
  • 人名

[Marriages]表有三列:

  • 婚姻 ID
  • PersonIDa
  • PersonIDb

我想选择以下列:

  • 婚姻 ID
  • PersonName(用于 personIDa)
  • PersonName(用于 personIDb)

我想我需要使用SELECT带有 JOIN 的声明,但我不确定如何为每个 PersonName 分配唯一的别名。这是我到目前为止所拥有的(不起作用):

SELECT 
    [Marriages].[MarriageID], 
    [People].[PersonName] AS aName, 
    [People].[PersonName] AS bName  
FROM 
    [Marriages]  
JOIN 
    [People] ON [Marriages].[PersonIDa] = [People].[PersonID]  
JOIN 
    [People] ON [Marriages].[PersonIDb] = [People].[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]  

关于SQL SELECT 连接列别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14167854/

相关文章:

java - 无法使用 HQL 从我的 Java 应用程序查询包含阿拉伯语的 SQL Server 表

sql-server - 在 SQL Server 中使用 Dense_Rank 对具有排名的列进行排名组合

sql-server - T-SQL : check if variable is null

sql - Postgresql - 分组依据

mysql - 遍历mysql表以填充Node中的数组

sql - Order by Clause 与不同的 Access 冲突?

c# - 如何定期截断 Microsoft Azure 上的 SQL 数据库

sql - 使用合并复制还原 Sql Server 2008 数据库时出错

sql - oracle中 “tab”表和all_tables之间的区别

sql - 加入派生表postgres