涉及两个表的SQL查询

Sam*_*ack 0 c# sql sql-server asp.net sql-server-2008

我有两个表,tbl_msg ...

tbl_msg

tbl_user

tbl_user

我想从tbl_msg中选择所有的togs = 42的msgs以及发送了msg的人(而不是fromid)的相应名称.结果应该看起来像这样......

|fromid(name, not the id)| Msg| toid(name!,which belongs to id 42)|some other column from msgid|
Run Code Online (Sandbox Code Playgroud)

查询:

select tbl_msg.[MsgId]       
  ,tbl_User.FirstName  as sentby    
  ,tbl_msg.[ToId]
  ,tbl_msg.[Msg] 
from 
   tbl_msg 
inner join 
   tbl_User on tbl_msg.FromId = tbl_User.ID  
where 
   tbl_msg.ToId = 42
Run Code Online (Sandbox Code Playgroud)

但这只会给我相应的fromid的名字,而不是toid和fromid的名字

如何才能做到这一点?

gza*_*axx 5

您必须两次加入用户:

select m.[MsgId]
  ,u1.FirstName  as sentby
  ,u2.FirstName as sentTo
  ,m.[Msg]
from tbl_msg m
inner join tbl_User u1 on m.FromId = u1.ID
inner join tbl_User u2 on m.ToId = u2.ID
where m.ToId = 42
Run Code Online (Sandbox Code Playgroud)