问题
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
回答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
回答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
来源:https://stackoverflow.com/questions/9293122/inner-join-between-three-tables-in-mysql