MySQL - update + join
Toto je zoznam záznamov, ktoré chcem upraviť:
select nakup.id
from nakup
inner join zakaznik on nakup.zakaznik_id=zakaznik.id
where zakaznik.skupina_id='1'
Potrebujem pri týchto záznamoch upraviť toto:
update nakup
set spracovane_skupina=1
Toto je výsledok:
update nakup
set spracovane_skupina='1'
where
(
select nakup.id
from nakup
inner join zakaznik on nakup.zakaznik_id=zakaznik.id
where zakaznik.skupina_id='1'
)
Dostávam chybovú hlášku:
SQL Error (1093): You can't specify target table 'nakup' for update in FROM clause
Doplňujúce informácie:
- MySQL 5.5.8
- motor tabuľky "nakup" je InnoDB
- motor tabuľky "zakaznik" je MyISAM
Toto som mal ako inšpiráciu:
339622-sql-update
Dúfam, že som dodal všetky potrebné informácie. Chcel by som vás poprosiť o pomoc s týmto SQL príkazom. Tabuľky som pre prehľadnosť premenoval na slovenské, takže, ak tam nájdete nejaký preklep, je to len prepisom na poradňu. V originále mám anglické názvy.
UPDATE nakup t1
JOIN zakaznik t2 ON t1.id=t2.id
SET t1.spracovane_skupina='1'
WHERE t2.skupina_id = '1'
Takže toto jediné (* ako som neskôr zistil, nie je to jediné, to horné som len zle odpísal) funguje správne. Akurát je tam malá chybička:
Ďakujem za pomoc.
Nevim jak na MySQL, ale pro MS SQL by to vypadalo takto