Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MySQL中连接两个表两次。可能吗???_Mysql_Join - Fatal编程技术网

在MySQL中连接两个表两次。可能吗???

在MySQL中连接两个表两次。可能吗???,mysql,join,Mysql,Join,表用户的表结构、消息如下: Users - ID, Name Messages - ID, Sender, Receiver, Message 我想联接两个表,就像联接messages.sender和users.id以及messages.receiver和users.id一样 是否可以在一次查询中使用发送者id、发送者名称、接收者id、接收者名称、消息…等获得结果???…是的,您可以根据需要多次加入表 SELECT sender.ID AS `sender_id`, sender

表用户的表结构、消息如下:

Users - ID, Name

Messages - ID, Sender, Receiver, Message
我想联接两个表,就像联接messages.sender和users.id以及messages.receiver和users.id一样


是否可以在一次查询中使用发送者id、发送者名称、接收者id、接收者名称、消息…等获得结果???…

是的,您可以根据需要多次加入表

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

是的,您可以根据需要多次加入表

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

是的,您可以通过命名内部联接来执行此操作:

 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)

是的,您可以通过命名内部联接来执行此操作:

 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)