SQL dotaz:#1093 - You can't specify target table 'ankety_moznosti_vysledky' for update in FROM clause
Kód: Vybrat vše
UPDATE ankety_moznosti_vysledky SET pocet_hlasu = pocet_hlasu -1 WHERE id_ankety = 2 AND id_moznosti = (SELECT max(id_moznosti) FROM ankety_moznosti_vysledky WHERE id_ankety = 2)tedy toto funguje:
Kód: Vybrat vše
SELECT max(id_moznosti) FROM ankety_moznosti_vysledky WHERE id_ankety = 2
vrátí 3
a pak:
UPDATE ankety_moznosti_vysledky SET pocet_hlasu = pocet_hlasu -1 WHERE id_ankety = 2 AND id_moznosti = 3
update funguje
P.S.: Vysvětlení, proč a kde to potřebuji: Mám na stránkách hlasování pro reg. uživatele, když se založí hlasování, tak do tabulky ankety_moznosti_vysledky se zapíše id možnosti (PK), id ankety (FK), text možnosti a počet hlasů. Při zakládání ankety se u všech možností zapíše počet hlasů=0, ale k tomu se vygeneruje ještě jako poslední možnost zdržuji se hlasování, kde se nastaví počet hlasů=počet userů...
Při hlasování tedy se zaznamená hlas pro označenou odpověď a odečte se hlas u možnosti "zdržel se hlasování"
A výše uvedené sql dotazy potřebuji, když se smaže uživatel v době, kdy už je anketa založena, ale ještě nespuštěná...

