Autor | Zpráva | ||
---|---|---|---|
Prkny Profil |
#1 · Zasláno: 31. 5. 2012, 00:07:30
Zdravím,
prosím o pomoc s efektivním příkazem mysql. V jedné tabulce mám data položek, které neustále přibývají, do druhé tabulky bych dal rád součet položek. Skript by měl UPDATOVAT stávající tabulku položky na sloupci celkovy_pocet První tabulka (data_polozek) má strukturu id, id_polozky, pocet 1, 556, 5 2, 332, 1 3, 556, 2 4, 123, 17 5, 556, 1 Druhá tabulka (polozky) má strukturu: id, nazev, atd , celkovy_pocet 556, jablko, 8 332, hruška, 1 123, pomeranč, 17 Moje otázka zní: jde udělat příkaz přímo v mysql, aby to nebyla taková prasárna v php?? Napadlo mě jenom toto s pomocí PHP: $result = mysql_query("SELECT id_polozky, pocet FROM data_polozek"); while ($row = mysql_fetch_assoc($result)) { $pocet = mysql_fetch_assoc(mysql_query("SELECT celkovy_pocet FROM polozky WHERE id=$row[id_polozky]")); $celkovy_pocet = $pocet[celkovy_pocet] + $row[pocet]; mysql_query("UPDATE polozky SET celkovy_pocet='$celkovy_pocet' WHERE id='$row[id_polozky]'"); } Předem díky. |
||
Kajman Profil |
#2 · Zasláno: 31. 5. 2012, 00:15:34
Snad půjde něco jako
UPDATE polozky p LEFT JOIN (SELECT id_polozky, Sum(pocet) soucet FROM data_polozek GROUP BY id_polozky) s ON p.id = s.id_polozky SET p.celkovy_pocet = Ifnull(s.soucet, 0) Pokud to opravdu je nutné předpočítávat, tak na to můžete použít i triggery. |
||
Prkny Profil |
#3 · Zasláno: 31. 5. 2012, 10:32:29
Děkuji, jako vždy jste mi poradil naprosto přesně.
|
||
Časová prodleva: 13 let
|
0