sql >> データベース >  >> RDS >> Mysql

サブクエリを使用したmysql更新クエリ

    主な問題は、内部クエリをwhereに関連付けることができないことです。 外側のupdateの句 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
    

    デモ: http://www.sqlfiddle.com/#!2/a74f3/1



    1. データベースバックアップ用のLinuxシェルスクリプト

    2. where句なしで2つの異なるテーブルから2つの列の合計を計算する方法は?

    3. SQLServerトランザクションレプリケーションの構成

    4. PHPは日時を秒に変換します