【问题标题】:Mysql join query on multiple tablesMysql join 查询多张表
【发布时间】:2013-05-10 09:24:55
【问题描述】:

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

联系人

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

工作

  • work_id(主键)
  • work_company_name
  • 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 的查询。

我希望有前进的道路。

非常感谢,

奇迹

【问题讨论】:

    标签: mysql join


    【解决方案1】:

    以下应该有效:

    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
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-15
      • 2017-12-23
      • 1970-01-01
      • 1970-01-01
      • 2014-12-20
      • 2021-10-17
      相关资源
      最近更新 更多