sql 连接两列

发布于 2024-11-16 16:14:28 字数 665 浏览 1 评论 0原文

我有如下两个表:

用户

  • ID
  • 用户名
  • 电子邮件

消息

  • ID
  • 消息
  • FROMUSER
  • TOUSER

FROMUSERTOUSER 在用户表中具有对 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

有没有什么简单的方法可以在不使用子查询的情况下实现此目的?

I have two tables as below:

Users

  • ID
  • UserName
  • Email

Messages

  • ID
  • Message
  • FROMUSER
  • TOUSER

FROMUSER and TOUSER have a Foreign key reference to ID in Users table.

Now I want to retrieve messages doing a join on users with the user's email addresses, as below

| ID | Message | FROMEMAIL | TOEMAIL |

I could write a query as below.

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

Is there any simple way I can achieve this without the subquery?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

温柔戏命师 2024-11-23 16:14:28

只需加入 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

Just join the Users table twice:

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文