sql >> Database teknologi >  >> RDS >> Mysql

mysql opdateringsforespørgsel med underforespørgsel

Hovedproblemet er, at den indre forespørgsel ikke kan relateres til din where klausul på den ydre update sætning, fordi where-filteret gælder først for tabellen, der opdateres, før den indre underforespørgsel overhovedet udføres. Den typiske måde at håndtere en situation som denne på er en multi-table opdatering .

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. MySQL:bestil efter inde i gruppen efter

  2. Hvordan henter jeg mit MySQL-brugernavn og -adgangskode?

  3. Bedømmelsessystem i PHP og MySQL

  4. Sådan konverteres antal minutter til tt:mm-format i TSQL?