MySQL 更新内部結合クエリのトラブルシューティング
次の MySQL 更新クエリを実行しようとしたときに問題が発生しました:
UPDATE b SET b.mapx = g.latitude, b.mapy = g.longitude FROM business AS b INNER JOIN business_geocode g ON b.business_id = g.business_id WHERE (b.mapx = '' OR b.mapx = 0) AND g.latitude > 0
このエラーはコンパイルの問題を示していますが、すべてのフィールド名はvalid.
考えられる解決策
分析の結果、問題はテーブル エイリアスの誤った使用にある可能性があることが示唆されています。次のようにクエリを変更してみてください。
UPDATE business AS b INNER JOIN business_geocode AS g ON b.business_id = g.business_id SET b.mapx = g.latitude, b.mapy = g.longitude WHERE (b.mapx = '' or b.mapx = 0) and g.latitude > 0
この改訂されたクエリでは、テーブル フィールドが適切に参照されるようにテーブル エイリアスが明示的に指定されています。
追加のトラブルシューティング
修正されたクエリでもエラーが発生する場合は、一時テーブルを作成してクエリ構造を変更せずに検証すると有益な場合があります。元のテーブル。これは、潜在的な構文または構造の問題を特定するのに役立ちます。
さらに、更新クエリに関連する特定のエラー メッセージについては、MySQL ドキュメントを確認することをお勧めします。これにより、問題の根本原因についてさらに詳しい洞察が得られます。
以上がMySQL UPDATE INNER JOIN クエリが失敗するのはなぜですか? どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。