SQL查询从表中获取多次信息

This is very easy for experimented Sql users i guess:

given the following tables:

Table users

   id  Name
   1 | Stephan
   2 | Marion
   3 | Jonathan
   4 | Morgan

Table messages

  id| sender | reveiver | message
   1|    2   |     4    | "hello world!"

How would you do your request to get the following(in only one sql request) :

 id| sender | reveiver | message        | sender.username | receiver.username
  1|    2   |     4    | "hello world!" |       Marion    |        Morgan

Thanks a lot!

select m.id, sender, reveiver, message,
  sender.Name as sender_username, receiver.Name as receiver_username
from messages m
inner join users sender on sender.id = m.sender
inner join users receiver on receiver.id = m.reveiver

try

select m.id, sender, receiver, message, sender.name, receiver.name
from messages m
left outer join users sender on sender.id = m.sender
left outer join users receiver on receiver.id = m.receiver
SELECT
    m.id
    , m.sender
    , m.receiver
    , m.message
    , s.name
    , r.name
FROM
    messages m
    , INNER JOIN names s ON (s.id = m.sender)
    , INNER JOIN names r ON (r.id = m.receiver)
    select
        m.id
    ,  m.sender
    ,  m.receiver
    ,  m.message
    ,  su.user
    ,  ru.user
    from message m
    join user su on (su.id = m.sender)
    join user ru on (ru.id = m.receiver)

I am sure there is a more efficient way of doing it, but this is probably the easiest.