Inner join between three tables in mysql

独自空忆成欢 提交于 2020-01-23 10:57:48

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!