Mysql连接查询多个表

时间:2013-05-15 17:21:04

标签: mysql join

我有三个表,在这些表中有这些基本字段

联系人

  • 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。

我很欣赏前进的方向。

非常感谢,

奇迹

1 个答案:

答案 0 :(得分: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

诀窍是为表添加别名,以便可以区分这两者。