两列上的sql连接

两列上的sql连接,sql,subquery,inner-join,Sql,Subquery,Inner Join,我有两个表格如下: 使用者 身份证 用户名 电子邮件 信息 身份证 信息 FROMUSER 托瑟 FROMUSER和TOUSER对用户表中的ID有一个外键引用 现在我想通过加入用户的电子邮件地址来检索消息,如下所示 | ID | Message | FROMEMAIL | TOEMAIL | 我可以写一个如下的查询 SELECT Step1.*, users.email as ToUser FROM (SELECT messages.*,

我有两个表格如下:

使用者

  • 身份证
  • 用户名
  • 电子邮件
信息

  • 身份证
  • 信息
  • FROMUSER
  • 托瑟
FROMUSER
TOUSER
对用户表中的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

没有子查询,有什么简单的方法可以实现这一点吗?

只需加入用户表两次:

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