繁体   English   中英

内部表联接的意外结果

[英]Unexpected result from inner table join

我有3张桌子

  • 赞助商= id(PK),图片,链接
  • Sponsor_tier = id(PK),名称
  • Sponsor_tier_rel = id(PK),Sponsor_id(FK赞助商表ID),Sponsor_tier_id(FK Sponsor_tier表ID)

我做这样的查询:

$stmt2 = $db_connection->prepare("SELECT
                                    sponsor.image,
                                    sponsor.link
                                FROM
                                    sponsor_tier_rel
                                    INNER JOIN sponsor_tier
                                        ON sponsor_tier_rel.sponsor_tier_id = 8
                                    INNER JOIN sponsor
                                        ON sponsor_tier_rel.sponsor_id = sponsor.id
                                ");

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

我在这里做错了什么?

您的查询缺少对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

暂无
暂无

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

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