内部表连接的意外结果

时间:2017-05-08 16:15:39

标签: mysql sql join

我有3张桌子

  • sponsor = id(PK),image,link
  • sponsor_tier = id(PK),姓名
  • sponsor_tier_rel = id(PK),sponsor_id(FK赞助商表ID),sponsor_tier_id(FK sponsor_tier table id)

我这样做一个查询:

\.

并且我应该得到10个结果(因为sponsor_tier_rel表中只有10个条目)但是我得到80个结果,每个sponsor_tier_rel条目重复8次。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

您的查询缺少sponsor_tier表的连接条件。

SELECT
  sponsor.image,
  sponsor.link
FROM
  sponsor_tier_rel
  INNER JOIN sponsor_tier ON sponsor_tier_rel.sponsor_tier_id = 
sponsor_tier.id
  INNER JOIN sponsor ON sponsor_tier_rel.sponsor_id = sponsor.id
WHERE
  sponsor_tier_rel.sponsor_tier_id = 8