sql 连接两列
我有如下两个表:
用户
- ID
- 用户名
- 电子邮件
消息
- ID
- 消息
- FROMUSER
- TOUSER
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
有没有什么简单的方法可以在不使用子查询的情况下实现此目的?
I have two tables as below:
Users
- ID
- UserName
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
只需加入 Users 表两次:
Just join the Users table twice: