Inner join between three tables in mysql

20,894

Solution 1

select con.name as contact_name , com.name as company_name,campa.name as campaign_name
from contact con inner join company com
on con.companyid = com.companyid
inner join campaign campa
on com.campaignid = campa.campaignid

assuming id columns of respected tables

Solution 2

SELECT contacts.name,companies.name,campaigns.name 
FROM contacts 
INNER JOIN 
(companies INNER JOIN campaigns 
ON campaigns.campaignid=companies.campaignid) 
ON contacts.companyid=companies.companyid
AND //add any additional filters HERE

hope this was helpful

Share:
20,894
yatish mehta
Author by

yatish mehta

Updated on January 19, 2020

Comments

  • yatish mehta
    yatish mehta over 4 years

    I have 3 tables called

    • Companies
    • Contacts
    • Campaigns

    Contacts has foreign key of companies. Companies has foreign key of campaigns. All of them have a column 'name'. I need a join table which will have contact name company name and campaign name.

    contact
    id   name company_id
    companies
    id   name campaign_id
    campaigns
    id   name company_id