【问题标题】:sql join on two columnssql连接两列
【发布时间】:2011-09-21 12:48:11
【问题描述】:

我有两张表如下:

用户

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

消息

  • 身份证
  • 留言
  • 来自用户
  • 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

有没有什么简单的方法可以在没有子查询的情况下实现这一点?

【问题讨论】:

    标签: sql subquery inner-join


    【解决方案1】:

    只需加入用户表两次:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-05
      • 2012-04-07
      相关资源
      最近更新 更多