表msgbox
sendtime,sendid,inceptid,msgbody
表users
userid username
有一个查询
select sendtime,sendid,inceptid,msgbody from msgbox
查询出来的sendid,inceptid为用户ID,想同时把sendid,inceptid转换为用户姓名,语句要怎么写啊? sendid,inceptid 都对应表users 中的userid,
要是只转换一个我会写,同时转换二个就不会了,请大家帮忙!

解决方案 »

  1.   

    Select
    A.sendtime,
    B.username As sendid,
    C.username As inceptid,
    A.msgbody
    From
    msgbox A
    Left Join
    users B
    On A.sendid = B.userid
    Left Join
    users C
    On A.inceptid = C.userid
      

  2.   

    --如果sendid inceptid肯定在users表中,也可以
    Select
    A.sendtime,
    B.username As sendid,
    C.username As inceptid,
    A.msgbody
    From
    msgbox A
    Inner Join
    users B
    On A.sendid = B.userid
    Inner Join
    users C
    On A.inceptid = C.userid
      

  3.   

    或者Select
    A.sendtime,
    B.username As sendid,
    C.username As inceptid,
    A.msgbody
    From
    msgbox A, users B, users C
    Where A.sendid = B.userid And A.inceptid = C.userid
      

  4.   

    select a.sendtime,(select username from users where userid = a.sendid),(select username from users where userid = a.inceptid),a.msgbody 
    from msgbox a
      

  5.   

    表msgbox
    sendtime,sendid,inceptid,msgbody
    表users
    userid username
    有一个查询
    select sendtime,sendid,inceptid,msgbody from msgbox
    查询出来的sendid,inceptid为用户ID,想同时把sendid,inceptid转换为用户姓名,语句要怎么写啊? sendid,inceptid 都对应表users 中的userid,
    要是只转换一个我会写,同时转换二个就不会了,请大家帮忙!select sendtime,sendid,username,inceptid,username2=username,msgbody 
    from msgbox a,users b
    where a.sendid = b.userid