首页 > 解决方案 > 如何对多个表进行 SQL 连接(FK 表有循环的结果共享 ID)

问题描述

我对 SQL 和 Join 语句很陌生,目前我已经脱离了我的联盟,我目前有 6 个数据库表,它们都根据主表 ID 链接到第 7 个主表,但是其他 6 个表中的所有信息是循环的,因此有几个显示结果到一个主表 ID。

是否可以将它们全部加入一个联接语句中,以便我可以得到一个结果,以便主表中的每个人的信息也显示来自其他 6 个链接表的信息

所以基本上当他们都加入了信息后,我希望能够在网页上显示所有信息,所以我想知道我需要做多个 JOIN 语句还是只需要一个更长的语句?

我在下面包含了一些图像,可以直观地解释它。见示例 1 和 2

  1. 以黄色突出显示的列循环显示许多结果:

数据库表关系链接 2. 这是信息如何循环到数据库中的示例,其中有许多 Race_id 共享到相同的 inf_id:

历史表中的循环示例

我不太确定一旦加入它会是什么样子,因为一些信息被循环到许多 Id 中,并且不确定这是否意味着它需要复制列或行?任何帮助将不胜感激。

标签: mysqlsqljoininner-join

解决方案


您可以使用左连接,例如用于第一张表的影响者、社交、活动

select i.*,   s.follower, s.Social_Medial_URL, a.activity, a.result 
from influencer  i 
left join  social s on s.inf_id = i.id 
left join  activities a on  a.inf_id = i.id 

您可以使用相同的规则自行为其他表添加左连接

 select i.*
  , s.follower_count
  , s.social_media_url
  , a.compete_activity
  , a.compete_results 
from influencers i 
left join inf_other_social s on s.inf_id = i.id 
left join inf_compete_activity a on a.inf_id = i.id 
LIMIT 0, 25 

推荐阅读