我有2個表。爲了簡化:Sql join,2表,相同字段
表1中,用戶:
用戶id INT, 的userName爲nvarchar(50)
表2中,消息:
的msgId INT, msgFrom int, msgTo int ...
msg1和msg2都包含userId。現在我想獲取所有消息,但不是msgFrom我想要用戶名。我知道該在這裏做什麼:
select tabMessages.*, tabUsers.userName as Sender
from tabMessages
inner join tabUsers on msgFrom=userId
where msgId = @someParameter;
一切工作正常和丹迪。獲取用戶名而不是msgTo也是一樣。現在的問題是,我該如何在同一個電話中獲得BOTH字段?我想讓表格成爲
msgId,msgFrom,msgTo,Sender,Recipient。我試圖:
select tabMessages.*, tabUsers.userName as Sender,
tabUsers.userName as Recipient
from tabMessages
inner join tabUsers on msgFrom=userId and msgTo=userId
where msgId = @someParameter;
但這並不起作用。我正在使用Ms sql2000。
+1。但請格式化您的SQL,以便在不必水平滾動的情況下查看它。 – bernie 2010-06-05 20:35:49
謝謝,會做:) – Anpher 2010-06-05 20:41:04