SQL 多个连接语句问题

SQL multiple join statement issues

我正在尝试创建一个存储过程,它将检索 table(称为 CommsLog)并将其与用户 table 到 return 所有关联的名称匹配有了它。

用户数据库按别名存储所有用户,然后我尝试在数据库中查找他们的名字和姓氏,将它们连接起来,然后return将其放入我的结果

这是我目前得到的,但它只是 return 的一部分 table 并且两列的名称相同(这些应该不同)

SELECT 
    CommsLog.ID, 
    CommsLog.CommType, 
    CommsLog.Date, 
    Users.FirstName +' ' + Users.LastName, 
    Users.FirstName +' ' + Users.LastName, 
    CommsLog.Version 
FROM CommsLog
INNER JOIN Users
ON CommsLog.SentTo=Users.Alias and CommsLog.SentFrom=.Users.Alias

编辑:更新数据和输出

CommsLog table 看起来像:

+----+----------+--------------------------+----------+----------+---------+
| ID | CommType |           Date           |  SentTo  | SentFrom | Version |
+----+----------+--------------------------+----------+----------+---------+
| 12 | Test     | 2014-12-19 09:38:10.000  | uk\tmot  | uk\gmab  | 1.10    |
+----+----------+--------------------------+----------+----------+---------+

用户 table 看起来像:

+---------+-----------+----------+------------+----------------------------------+
|  Alias  | FirstName | LastName | Telephone  |              email               |
+---------+-----------+----------+------------+----------------------------------+
| uk\tmot | Tom       | motoll   | 0731424523 | tom.motoll@whosebug.com     |
| uk\gmab | Grant     | maberick | 0756463345 | grant.maberick@whosebug.com |
+---------+-----------+----------+------------+----------------------------------+

输出:

+----+----------+-------------------------+------------+----------------+---------+
| ID | CommType |          Date           |   SentTo   |    SentFrom    | Version |
+----+----------+-------------------------+------------+----------------+---------+
| 12 | Test     | 2014-12-19 09:38:10.000 | Tom motoll | Grant maberick | 1.10    |
+----+----------+-------------------------+------------+----------------+---------+

您的意思是只获取用户发送给他们自己的记录吗? 这就是您的加入条件正在做的事情。

在我看来,您正试图在 SELECT 语句中提取 SentTo 用户的名称以及 SentFrom 用户的名称。如果是这种情况,那么您实际上需要将 USERS table 加入您的查询两次,使用别名 - 一次用于您的 SentTo 用户,一次用于您的 SentFrom 用户。试试这个查询,而不是:

SELECT 
    CSLL.CommsLog.ID, 
    CSLL.CommsLog.CommType, 
    CSLL.CommsLog.Date, 
    UserTo.FirstName +' ' + UserTo.LastName, 
    UserFrom.FirstName +' ' + UserFrom.LastName, 
    CSLL.CommsLog.Version 
FROM CSLL.CommsLog
INNER JOIN CSLL.Users UserTo ON CSLL.CommsLog.SentTo=UserTo.Alias
INNER JOIN CSLL.Users UserFrom ON CSLL.CommsLog.SentFrom=UserFrom.Alias

由于您没有 post 您的 table 结构或任何示例数据,您可能需要稍微调整该查询以使其工作,但它至少应该让您接近你在追求什么。