Соединение двух таблиц дважды в MySQL. Возможно или нет ??? - PullRequest
1 голос
/ 06 июня 2011

Структуры таблиц для пользователей таблиц, сообщения похожи на приведенные ниже,

Users - ID, Name

Messages - ID, Sender, Receiver, Message

Я хочу соединить две таблицы дважды, как соединение messages.sender с users.id и messages.receiver с users.id.

Можно ли получить результат с идентификатором отправителя, именем отправителя, идентификатором получателя, именем получателя, сообщением ... (и т. Д.) в одном запросе ??? ...

Ответы [ 2 ]

4 голосов
/ 06 июня 2011

Да, вы можете присоединяться к столам столько раз, сколько необходимо.

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
3 голосов
/ 06 июня 2011

Да, вы можете сделать это, назвав внутреннее соединение:

 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...