1

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

联系人

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

工作

  • work_id(主键)
  • 工作公司名称
  • work_country_id

国家

  • country_id(主键)
  • 国家的名字

我正在尝试运行一个查询,该查询显示 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 的查询。

我很感激前进的道路。

非常感谢,

想知道

4

1 回答 1

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

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

于 2013-05-15T17:23:47.270 回答