我想知道是否可以在两个表之间但在不同的列上进行联接?让我解释一下,因为这与我见过的大多数案例不同......
我有一个表,用于记录用户之间的所有消息,每个用户都有一个唯一的用户 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 进行匹配。
非常感谢。
最佳答案
您需要两个联接。为此,您需要了解表别名(一件好事):
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;
关于mysql - 两个表之间的多列连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48470743/