sql >> Databasteknik >  >> RDS >> Mysql

mysql uppdateringsfråga med underfråga

Huvudproblemet är att den inre frågan inte kan relateras till din where sats på den yttre update sats, eftersom where-filtret tillämpas först på tabellen som uppdateras innan den inre underfrågan ens körs. Det typiska sättet att hantera en situation som denna är en flerbordsuppdatering .

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

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



  1. SQL UNION Cheat Sheet med 10 enkla och användbara tips

  2. SQL Server AlwaysOn ( Availability Group ) Arkitektur och Steg för Steg Installation - 3 Manuell misslyckande över steg

  3. Hur man hämtar icke-matchande resultat i mysql

  4. Att använda MySQL:s TIMESTAMP kontra att lagra tidsstämplar direkt