I have 2 tables. To simplify:
Table 1, users:
userId int, userName nvarchar(50)
Table 2 , messages:
msgId int, msgFrom int,
Join users table twice with different aliases. First join to from column, second to to column.
select m.*, u1.userName as Sender, u2.userName as Recipient
from tabMessages as m
inner join tabUsers as u1
on u1.userId=m.msgFrom
inner join tabUsers as u2
on u2.userId=m.msgTo
where m.msgId = @someParameter;