Autor Zpráva
pepikzdepa
Profil *
Dobrý den.. mám tabulku kde mám sloupec1 (price) a sloupec2 (vat). Potřeboval bych u všech záznamů změnit hodnotu v sloupci1 na hodnotu, která je ve sloupci2.

Zkouším toto:
UPDATE test t1 SET t1.price = (SELECT t2.vat FROM test t2 WHERE t2.id = t1.id)
ale vyhazuje to chybu Error in query (1093): You can't specify target table 't1' for update in FROM clause

kdyby si to někdo chtěl zkusit, tak zde je dump:
CREATE TABLE `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `price` int(11) NOT NULL,
  `vat` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

INSERT INTO `test` (`id`, `price`, `vat`) VALUES
(1,    100,    20);


Kde mám prosím chybu? Nějak si s tím nevím rady :o)

děkuji!


hmm, tak jsem to vyresil, on zadny subselect nebyl potreba, stacilo:
UPDATE test SET price = vat

jak jednoduché :o)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: