我试图创建一个存储过程来检索一个表(称为CommsLog)并将其与用户表匹配,以返回与之关联的所有名称。
用户数据库按别名存储所有用户,然后我试图在数据库中查找他们的名字和姓氏,将它们连接起来并将其返回到我的结果中
这是我目前所得到的,但它只返回表格的一部分,两列的名称相同(这些应该是不同的)
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表格如下:
+----+----------+--------------------------+----------+----------+---------+
| ID | CommType | Date | SentTo | SentFrom | Version |
+----+----------+--------------------------+----------+----------+---------+
| 12 | Test | 2014-12-19 09:38:10.000 | uk\tmot | uk\gmab | 1.10 |
+----+----------+--------------------------+----------+----------+---------+
用户表格如下:
+---------+-----------+----------+------------+----------------------------------+
| Alias | FirstName | LastName | Telephone | email |
+---------+-----------+----------+------------+----------------------------------+
| uk\tmot | Tom | motoll | 0731424523 | tom.motoll@stackoverflow.com |
| uk\gmab | Grant | maberick | 0756463345 | grant.maberick@stackoverflow.com |
+---------+-----------+----------+------------+----------------------------------+
输出继电器:
+----+----------+-------------------------+------------+----------------+---------+
| ID | CommType | Date | SentTo | SentFrom | Version |
+----+----------+-------------------------+------------+----------------+---------+
| 12 | Test | 2014-12-19 09:38:10.000 | Tom motoll | Grant maberick | 1.10 |
+----+----------+-------------------------+------------+----------------+---------+
答案 0 :(得分:2)
在我看来,您试图在SELECT
语句中同时提取SentTo用户的名称以及SentFrom用户的名称。如果是这种情况,那么您实际上需要将USERS
表加入您的查询两次,使用别名 - 一次用于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
由于您没有发布您的表格结构或任何示例数据,您可能需要调整一下该查询以使其正常工作,但它至少应该让您接近您所追求的目标。
答案 1 :(得分:0)
您是否只想获取从用户发送给自己的记录? 这就是你的连接条件正在做的事情。