Mysql
 sql >> Base de données >  >> RDS >> Mysql

Requête de mise à jour MySQL avec jointure à gauche et grouper par

Je suppose que (Index1, Index2) est une clé unique sur Table , sinon je m'attendrais à la référence à t.SpecialEventCount pour entraîner une erreur.

Requête modifiée pour utiliser la sous-requête car elle ne fonctionnait pas avec GROUP BY

UPDATE
    Table AS t
    LEFT JOIN (
        SELECT
            Index1,
            Index2,
            COUNT(EventType) AS NumEvents
        FROM
            MEvents
        WHERE
            EventType = 'A' OR EventType = 'B'
        GROUP BY
            Index1,
            Index2
    ) AS m ON
        m.Index1 = t.Index1 AND
        m.Index2 = t.Index2
SET
    t.SpecialEventCount = m.NumEvents
WHERE
    t.SpecialEventCount IS NULL