1

3 つのテーブルがあり、それらのテーブルにはこれらの基本フィールドがあります

連絡先

  • 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

しかしもちろん、最後の結合が 2 番目の結合と競合するため、これは機能しません。私はほとんどそこにいますが、連絡先と勤務先の両方に関連付けられた 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

秘訣は、テーブルにエイリアスを追加して、2 つを区別できるようにすることです。

于 2013-05-15T17:23:47.270 に答える