2011-06-06 11 views
1

テーブル構造、メッセージが怒鳴る、MySQLで2つのテーブルを2回結合する。可能かどうかテーブルのユーザーのための

Users - ID, Name 

Messages - ID, Sender, Receiver, Message 

ように私は二回users.idでusers.idとmessages.receiverでmessages.senderを結ぶように2つのテーブルを結合するために必要されています。単一のクエリで

送信者のID、送信者名、受信者のID、受信者の名前、メッセージで結果を取得することが可能です...(など) ??? ...

答えて

3

はいあなたは、内側に名前を付けることによってそれを行うことができます参加:

select id, s.Name, r.Name from Messages 
    inner join users as s on (message.sender = s.id) 
    inner join users as r on (merssage.receiver = r.id) 
4

はい、あなたは必要に応じて何度もテーブルに参加できます。

SELECT 
    sender.ID AS `sender_id`, 
    sender.Name AS `sender_name`, 
    receiver.ID AS `receiver_id`, 
    receiver.Name AS `receiver_name`, 
    Messages.Message 
FROM 
    Messages 
INNER JOIN 
    Users AS sender 
ON 
    sender.ID = Messages.Sender 
INNER JOIN 
    Users AS receiver 
ON 
    receiver.ID = Messages.Receiver