繁体   English   中英

在多列的两个表之间联接

[英]Join between two tables on multiple column

我想知道是否可以在两个表之间但在不同的列上进行联接? 让我解释一下,因为它与我所见过的大多数情况都不相同...

我有一个表,用于用户之间的所有消息,每个用户都有一个唯一的用户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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM