0

tbl_msgという 2 つのテーブルがあります。

tbl_msg

tbl_user

tbl_user

toid=42 である tbl_msg からすべてのメッセージを、メッセージの送信元 (fromid ではなく) のそれぞれの名前とともに選択したいと考えています。結果は次のようになります。

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

クエリ:

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
  

しかし、これはtoidとfromidの両方の名前ではなく、対応するfromidの名前だけを教えてくれます

これはどのように行うことができますか?

4

3 に答える 3

5

ユーザーに 2 回参加する必要があります。

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
于 2013-06-20T09:19:55.403 に答える
0

このクエリがお役に立てば幸いです。

select tbl_msg.[MsgId]       
  ,u1.FirstName  as sentby    
  ,u2.FirstName as FromSent
  ,tbl_msg.[ToId]
  ,tbl_msg.[Msg] from tbl_msg 
  inner join tbl_User u1 on tbl_msg.FromId=u1.ID  
  inner join tbl_User u2 on u1.ToID =  u2.ID
  where tbl_msg.ToId=42
于 2013-06-20T09:23:10.350 に答える