ホームページ >データベース >mysql チュートリアル >MySQL UPDATE JOIN クエリでコンパイル エラーが発生するのはなぜですか?

MySQL UPDATE JOIN クエリでコンパイル エラーが発生するのはなぜですか?

DDD
DDDオリジナル
2024-12-07 09:29:16773ブラウズ

Why Does My MySQL UPDATE JOIN Query Produce a Compile Error?

結合テーブルの更新クエリに関する 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。