user2287474
user2287474

Reputation: 646

Unexpected result from inner table join

I have 3 tables

I do a query like this:

$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
                                ");

and I SHOULD get 10 results (as there are only 10 entries in the sponsor_tier_rel table) but instead I get 80 results with each sponsor_tier_rel entry repeating itself 8 times.

What did I do wrong here?

Upvotes: 0

Views: 43

Answers (1)

Your query is missing the join condition to sponsor_tier table.

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

Upvotes: 1

Related Questions