2013-05-15 128 views
1

我有三个表,并在这些表中,这些基础领域Mysql的连接查询的多个表

接触

  • CON_ID(主键)
  • con_name
  • con_work_id
  • con_country_id

工作

  • work_id(主键)
  • work_company_name
  • work_country_id

国家

  • COUNTRY_ID(主键)
  • COUNTRY_NAME

我试图运行其中显示con_name,work_company_name然后将国名两者的联系和工作的公司的查询。

我试过这个;

SELECT * 
FROM contacts 
LEFT JOIN work ON contacts.con_work_id = work.work_id 
LEFT JOIN country ON contacts.con_country_id = country.country_id 
LEFT JOIN country ON work.work_country_id = country.country_id 

但当然,这是行不通的,因为最后一次连接导致与第二次连接发生冲突。 我快到了,但无法查询显示与联系人和工作公司关联的country_name。

我很感激前进的方向。

非常感谢,

奇迹

回答

2

下面应该工作:

SELECT * 
FROM contacts 
LEFT JOIN work ON contacts.con_work_id = work.work_id 
LEFT JOIN country c1 ON contacts.con_country_id = c1.country_id 
LEFT JOIN country c2 ON work.work_country_id = c2.country_id 

诀窍是一个别名添加到表中,这样就可以区分这两种。

+0

完美 - 工作。 –