我想知道我是否可以在两个表之间加入但是在不同的列上?让我解释一下,因为我看到的大多数情况都不同......
我有一个用于用户之间所有消息的表,每个用户都有一个唯一的用户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匹配。
非常感谢先进。
答案 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;