sql >> Databáze >  >> RDS >> Sqlserver

aktualizace sql (pomozte mi)

Nejprve zjistěte, které záznamy je třeba aktualizovat:

select *
from tbl_order o
inner join tbl_group g on
    g.grp_id = o.grp_id
inner join tbl_indicator i on
    i.grp_nbr = g.grp_nbr
    and i.sect_nbr = g.sect_nbr
where
    g.indicat != i.indicat

Nyní upravte dotaz a aktualizujte tyto záznamy správným grp_id. Všimněte si, že jsem přidal další spojení do tabulky tbl_group s aliasem "g2". Toto bude správná skupina.

update o set
    o.grp_id = g2.grp_id
from tbl_order o
inner join tbl_group g on
    g.grp_id = o.grp_id
inner join tbl_indicator i on
    i.grp_nbr = g.grp_nbr
    and i.sect_nbr = g.sect_nbr
inner join tbl_group g2 on
    g2.grp_nbr = i.grp_nbr
    and g2.sect_nbr = i.sect_nbr
    and g2.indicat = i.indicat
where
    g.indicat != i.indicat

Všimněte si, že kvůli vnitřnímu spojení na tbl_group g2 nebudou záznamy aktualizovány, pokud neexistuje žádný záznam tbl_group, kde indicat odpovídá hodnotě indicat jeho přidruženého záznamu tbl_indicator.




  1. Zobrazit zřetězené hodnoty v dotazu SQL

  2. Pokud existují dvě stejná pole, vložte jinou aktualizaci

  3. Jak mohu vložit hodnoty do databáze (mySql) pomocí programu cpp?

  4. PHP Vyberte z MySQL, kde datum je 7 dní v budoucnosti