我有三张表,在那些表中这些基本字段
联络
con_id(主键)
姓名
工作id
国家id
工作
工作id(主键)
公司名称
工作所在国
国家
国家/地区id(主键)
国名
我正在尝试运行一个查询,其中显示联系人和工作公司的名称、工作公司名称以及国家/地区名称。
我试过了;

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

但这当然不起作用,因为最后一个连接会导致与第二个连接的冲突。
我就快到了,但无法通过查询显示与联系人和工作公司关联的国家/地区名称。
我希望能有一条前进的道路。
非常感谢,
奇迹

最佳答案

以下方法应该有效:

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

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

关于mysql - MySQL联接查询多个表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16571272/

10-16 01:48