我有3张 table
- sponsor = id(PK)、图片、链接
- sponsor_tier = id(PK)、姓名
- sponsor_tier_rel = id(PK)、sponsor_id(FK 赞助商表 ID)、sponsor_tier_id(FK 赞助商表 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
关于mysql - 内表连接出现意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43852499/