2011-06-06 37 views
1

的表用戶表結構,消息像風箱,在MySQL中連接兩個表兩次。可能與否?

Users - ID, Name 

Messages - ID, Sender, Receiver, Message 

我要加入兩個表兩次狀結合與users.id的messages.sender與users.id messages.receiver。

是否有可能在一個單一的查詢來獲取與發送者的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