sql >> Database >  >> RDS >> Mysql

mysql update-query met subquery

Het belangrijkste probleem is dat de innerlijke vraag niet gerelateerd kan zijn aan uw where clausule op de buitenste update statement, omdat het waar-filter eerst van toepassing is op de tabel die wordt bijgewerkt voordat de innerlijke subquery zelfs wordt uitgevoerd. De typische manier om met een dergelijke situatie om te gaan, is een update voor meerdere tabellen .

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. Datumconversie en cultuur:verschil tussen DATE en DATETIME

  2. Datum- en tijdgegevens Bucketiseren

  3. Waarom geeft Oracle's DECODE mij een andere waarde dan NVL?

  4. Maak verbinding met een externe MySQL-database via SSH met behulp van Java