-2

SQL クエリの作成に行き詰まっています。次の2つのテーブルがあります。

member
(
 memberid    int,
 membername  varchar(50)
)

message
(
 messageid   int, 
 message     varchar(100), 
 sender      int, 
 receiver    int
)

senderおよびは、 tableおよび columnreceiverを持つ外部キーです。とのとでメッセージの一覧を表示したい。membermemberidnameidsenderreceiver

ここで適切な結合を確立するにはどうすればよいですか?

4

2 に答える 2

3

次のようなものを試すことができます

SELECT  *
FROM    message m INNER JOIN
        member snd ON   m.sender = snd.memberid INNER JOIN
        member rcv ON   m.receiver = rcv.memberid
于 2012-07-15T11:05:07.103 に答える
1

I would use LEFT OUTER JOIN in this case because your message.sender and message.receiver allow NULL values. You probably do not want to skip messages if either of these columns is NULL:

select msg.messageid as messageid,
       msg.message as message,
       mem1.memberid as sender_id,
       mem1.membername as sender_name,
       mem2.memberid as receiver_id,
       mem2.membername as receiver_name
from message as msg
left outer join member as mem1 on msg.sender = mem1.memberid
left outer join member as mem2 on msg.receiver = mem2.memberid;

http://sqlfiddle.com/#!3/ac80e/2/0

于 2012-07-15T11:16:25.657 に答える