ホームページ >データベース >mysql チュートリアル >MySQL 更新クエリのサブクエリ エラーを修正するにはどうすればよいですか?

MySQL 更新クエリのサブクエリ エラーを修正するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-27 05:35:02367ブラウズ

How to Fix a Subquery Error in a MySQL Update Query?

更新クエリの MySQL サブクエリ エラー

提供されたクエリは、サブクエリを外部の更新ステートメントに関連付ける際の構文が間違っているため、エラーが発生します。この問題は、外側の更新の WHERE 句が内側のサブクエリの実行前に適用されるために発生します。

これを解決するには、以下に示す複数テーブルの更新アプローチが必要です。

UPDATE
  Competition AS C
INNER JOIN (
  SELECT
    CompetitionId,
    COUNT(*) AS NumberOfTeams
  FROM
    PicksPoints AS P
  WHERE
    UserCompetitionID IS NOT NULL
  GROUP BY
    CompetitionID
) AS A
  ON C.CompetitionID = A.CompetitionID
SET
  C.NumberOfTeams = A.NumberOfTeams

この調整されたクエリには:

  • Competition テーブル (エイリアス「C」) と、必要なカウントを返すサブクエリ (「A」) の間に INNER JOIN が含まれています。
  • ON 句の条件は、C.CompetitionID を A.CompetitionID に関連付け、行間の適切な関連付けを保証します。
  • SET 句は、サブクエリの結果で Competition テーブルの NumberOfTeams 列を更新します。

この改訂されたクエリは、正しいチーム数でコンペティション テーブルを効果的に更新し、以前の構文エラーを解決します。

以上がMySQL 更新クエリのサブクエリ エラーを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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