在多列上的两个表之间连接

时间:2018-01-26 22:55:44

标签: mysql sql join

我想知道我是否可以在两个表之间加入但是在不同的列上?让我解释一下,因为我看到的大多数情况都不同......

我有一个用于用户之间所有消息的表,每个用户都有一个唯一的用户ID。所以在第一张表中我有:

Tx User Id .......... Rx. User Id .......... Date ............ Message

在用户表中我有

user Id .............. User name

我可以使用连接查询吗?

Tx User "Name" ........... Rx. User "Name: ....... Date ....... Message

问题是在我的加入中显然我只能定义

SELECT messages.* users.name
FROM messages JOIN
     users
     ON messages.RxId = users.id OR messages.TxId = users.id

只有1个字段,但正如我上面解释的那样,我需要2个字段作为Rx用户名和Tx。用户名基于我的消息表中的id匹配。

非常感谢先进。

1 个答案:

答案 0 :(得分:2)

你想要两个连接。为此你需要了解表别名(一件好事):

SELECT m.*, urx.name, utx.name
FROM messages m LEFT JOIN
     users urx
     ON m.RxId = urs.id LEFT JOIN
     users utx
     ON m.TxId = utx.id;
相关问题