Mysql 当一个表中的一列引用另一个表中的三列时,如何连接两个表?
我有两个表,分别是User和User_activity,它们的结构是 用户Mysql 当一个表中的一列引用另一个表中的三列时,如何连接两个表?,mysql,sql,join,Mysql,Sql,Join,我有两个表,分别是User和User_activity,它们的结构是 用户 id name email etc.. 用户活动 id, initiator_id, source_id, target_id, activity_code, activity 在这里,我想选择一个用户的所有活动列表(我可以将它们引用到source_id),其中包含启动器、源、目标的所有名称 如何实现这一点?您只需加入三次,在引用用户的三次过程中为每个f使用别名 SELECT sourceUser.name, ta
id
name
email
etc..
用户活动
id,
initiator_id,
source_id,
target_id,
activity_code,
activity
在这里,我想选择一个用户的所有活动列表(我可以将它们引用到source_id),其中包含启动器、源、目标的所有名称
如何实现这一点?您只需加入三次,在引用用户的三次过程中为每个f使用别名
SELECT sourceUser.name, targetUser.name, initiatorUser.name FROM user_activity
INNER JOIN User as sourceUser on sourceUser.id = user_activity.source_id
INNER JOIN User as targetUser on targetUser.id = user_activity.target_id
INNER JOIN User as initiatorUser on initiatorUser.id = user_activity.initiator_id
WHERE source_id = MyUserIdQueryValue
SELECT
user_activity.*,
Initiator.Name AS InitiatorName,
Source.Name AS SourceName,
Target.Name AS TargetName
FROM
user_activity
INNER JOIN
user AS Initiator
ON Initiator.ID = user_activity.initiator_id
INNER JOIN
user AS Source
ON Source.ID = user_activity.source_id
INNER JOIN
user AS Target
ON Target.ID = user_activity.target_id
您只需加入三次,在三次引用用户时为每个f使用别名
SELECT
user_activity.*,
Initiator.Name AS InitiatorName,
Source.Name AS SourceName,
Target.Name AS TargetName
FROM
user_activity
INNER JOIN
user AS Initiator
ON Initiator.ID = user_activity.initiator_id
INNER JOIN
user AS Source
ON Source.ID = user_activity.source_id
INNER JOIN
user AS Target
ON Target.ID = user_activity.target_id
请下层选民详细说明原因,以便我能够解决您的担忧?请下层选民详细说明原因,以便我能够解决您的担忧?