ホームページ >データベース >mysql チュートリアル >MySQL UPDATE JOIN クエリでコンパイル エラーが発生するのはなぜですか?
結合テーブルの更新クエリに関する 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
フィールド名は正しいにもかかわらず、クエリはコンパイルに失敗しました。
解決策:
上クエリを分析したところ、次のように列名の前にテーブルの別名を置くことでエラーを解決できることがわかりました。以下:
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 5.5.8 に対してテストされ、以下に示すように構文エラーは発生しませんでした:
mysql> 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; Query OK, 0 rows affected (0.00 sec) Rows matched: 0 Changed: 0 Warnings: 0
以上がMySQL UPDATE JOIN クエリでコンパイル エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。