• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLの結合について)

SQLの結合についての課題でエラーが出てしまった場合の修正方法

このQ&Aのポイント
  • SQLの結合についての課題でエラーが発生しました。特に、ERROR 1052 (23000) at line 17: Column 'departmentid' in on clause is ambiguousというエラーメッセージが表示されました。このエラーを修正する方法について教えていただきたいです。
  • 問題2では部署名と社員名を取得するSQLを作成する必要があります。
  • 与えられたソースコードでは、departmentsテーブルのdepartmentnameカラムとemployeesテーブルのdepartmentidカラムを結合していますが、結合条件の書き方が間違っているためにエラーが発生しています。

質問者が選んだベストアンサー

  • ベストアンサー
  • dell_OK
  • ベストアンサー率13% (766/5720)
回答No.1

JOINのON句のdepartmentidがどのテーブルのものかわからないためのエラーです。 テーブル名を付けて修飾してみてください。 ---- SELECT employeename, departmentname FROM employees INNER JOIN departments ON employees.departmentid = departments.departmentname; SELECT employeename, departmentname FROM employees LEFT OUTER JOIN departments ON employees.departmentid = departments.departmentname; ----

その他の回答 (1)

回答No.2

SELECT employeename, departmentname FROM employees INNER JOIN departments ON departmentid = departmentname; SELECT employeename, departmentname FROM employees LEFT OUTER JOIN departments ON departmentid = departmentname; つまり、employees + departments という結合テーブルで、 departmentid = departmentname; って書いたので、 departmentid これは、どこのテーブルにあるの? departmentname これは、どこのテーブルにあるの? って聞いてるんです。 なので、テーブル名を書けばそれでOKです。 employees.departmentid = departments.departmentname; とか、 ただ、コードに違和感があり、気持ち悪いのは、 INTとVCHARを比較してるので、 employees.departmentid = departments.departmentid こうなんじゃないかな?と感じました。

関連するQ&A