目次一覧
状態:-
閲覧数:1,301
投稿日:2021-08-29
更新日:2021-08-29
問題発生 / エラーメッセージ
悩んだ点 / 原因判明 / 今回学んだ教訓
悩んだ点 / 原因判明 / 今回学んだ教訓
問題発生 / エラーメッセージ
問題発生
テーブル結合追加したら、エラー発生
エラーメッセージ
'public' in where clause is ambiguous
エラー原因
結合追加したテーブルに'public' カラムがあり、既存テーブルにも'public' カラムがあったため、テーブル名指定が必要だった
悩んだ点 / 原因判明 / 今回学んだ教訓
悩んだ点
結合条件ではテーブル名を指定しているのに、なぜエラー表示されるのか分からず悩みました
LEFT JOIN elem el ON (a.id = el.entry_id)
原因判明
テーブル名指定が必要なのは、結合条件ではなく、WHERE指定の方でした
従来
全テーブルでpublicカラムは一つしかなかったので、下記でよかった
WHERE public = 1
変更点
今回結合追加するテーブルにpublicカラムがあったため、aテーブル指定追加が必要になりました
WHERE a.public = 1
今回学んだ教訓
「where clause is ambiguous」エラー原因は、クエリの中でどのテーブルのカラムか指定していないことですが、該当箇所は結合式だけとは限りません。
WHERE式もよくよく確認しましょう。