繁体   English   中英

sql join在两列上

[英]sql join on two columns

我有两个表格如下:

用户

  • ID
  • 用户名
  • 电子邮件

消息

  • ID
  • 信息
  • FROMUSER
  • TOUSER

FROMUSERTOUSER在Users表中有一个ID的外键引用。

现在,我想检索使用用户的电子邮件地址对用户进行加入的消息,如下所示

| ID | Message | FROMEMAIL | TOEMAIL |

我可以写一个查询如下。

SELECT Step1.*, 
       users.email as ToUser 
  FROM (SELECT messages.*, 
               users.email as fromuser 
          FROM messages 
          JOIN users on messages.fromuser = users.ID) as Step1 
  JOIN users on step1.touser = users.ID

有没有简单的方法我可以在没有子查询的情况下实现这个目标?

只需加入Users表两次:

SELECT Message, uf.Email AS FromEmail, ut.Email AS ToEmail
FROM Messages
JOIN Users uf ON Messages.FromUser = uf.Id
JOIN Users ut ON Messages.ToUser = ut.Id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM