いくつかのテーブルを結合しようとしていますが、結合ステートメントで失敗しています。2番目の結合の列名が「name」であり、おそらくMySQLが属性にアクセスしようとしていると考えているためだと思いますか? どうすればこれを回避できますか?
SELECT surgery_city.*, s.surgeon_type, st.abbrev
FROM surgery_city
LEFT JOIN surgery_key as s ON s.surg_id = treatment_id
LEFT JOIN states as st ON st.name = surgery_city.state
WHERE treatment_id='10001'
問題は、st.name を参照する 2 番目の左結合です。その列を適切に参照する方法についてのアイデアはありますか? 残念ながら、テーブルの列名を変更することは、現時点ではオプションではありません:( ..
ありがとう、
シルバータイガー
アップデート:
上記のクエリで発生するエラーは次のとおりです。
[Err] 1267 - 操作 '=' の照合 (utf8_unicode_ci,IMPLICIT) と (utf8_general_ci,IMPLICIT) の不正な組み合わせ
バックティックでフィールドを囲むと、次のようになります。
LEFT JOIN states as st ON `st.name` = seo_surgery_city.state
代わりに次のようになります。
[Err] 1054 - 'on 句' の列 'st.name' が不明です
それも失敗します
LEFT JOIN states as st ON st.`name` = seo_surgery_city.state
(一重引用符 = バックティックがありますが、ここでは正しく表示されません)
[Err] 1267 - 操作 '=' の照合 (utf8_unicode_ci,IMPLICIT) と (utf8_general_ci,IMPLICIT) の不正な組み合わせ
また、失敗します
LEFT JOIN states as st ON `st`.`name` = seo_surgery_city.state
[Err] 1267 - 操作 '=' の照合 (utf8_unicode_ci,IMPLICIT) と (utf8_general_ci,IMPLICIT) の不正な組み合わせ