Autor | Zpráva | ||
---|---|---|---|
JardaB Profil |
#1 · Zasláno: 15. 7. 2019, 17:37:51
Zdravím, potřeboval bych opět nakopnout s updatem přes dvě tabulky.
Mám následující: UPDATE reviry_klient a SET a.udrzba = 0.1 WHERE status = 1 LIMIT 100 potřebuji ještě k 'udrzba' přičíst součet bonusů z tabulky 'bonusy_klient b', které jsou ve sloupci 'bousy_udrzba' a kde a.id = b.id_revir |
||
Tomášeek Profil |
#2 · Zasláno: 15. 7. 2019, 21:24:53
JardaB:
Update nad joinem by měl jít takto. |
||
JardaB Profil |
#3 · Zasláno: 16. 7. 2019, 08:10:35
Tomášeek:
Ano vím, že nějak takto, by to mělo jít. Ale to nějak mě uvádí do neklidu :D. Zkusím tedy na správný zápis přijít sám... Potřebuji prostě updatovat na základě sumy z jiné tabulky Předpokládám, že to tedy bude nějak takto: update reviry_klient a inner join bonusy_klient b on a.id = b.id_revir set a.udrzba = a.udrzba + sum(b.bonusy_udrzba) |
||
Kajman Profil |
#4 · Zasláno: 16. 7. 2019, 10:22:23
Tipuji, že uvedený dotaz zhavaruje. Zkusil bych sum vypočítat korelovaným poddotazem
UPDATE reviry_klient a SET a.udrzba = a.udrzba + Coalesce((SELECT Sum(b.bonusy_udrzba) FROM bonusy_klient b WHERE a.id = b.id_revir), 0) UPDATE reviry_klient a INNER JOIN (SELECT b.id_revir, Coalesce(Sum(b.bonusy_udrzba), 0) soucet FROM bonusy_klient b GROUP BY b.id_revir) s ON a.id = s.id_revir SET a.udrzba = a.udrzba + s.soucet |
||
Časová prodleva: 6 let
|
0