Problém se sql dotazem
Napsal: sob 15. úno 2014, 20:15
Ahoj, mám problém s jedním sql dotazem, který nejde a vypisuje tuto hlášku:
Když udělám zvlášť ten select dotaz (co je na konci v závorce), tak mi vrátí id a to když vrazím do updatu, tak to také projde...
tedy toto funguje:
Proč to tedy nejde v jednom dotazu. Díky
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á...
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á...