Я хочу запустить некоторые обновления в моей базе данных MySQL. Вот запрос, который я хочу использовать:Обновление MySQL с предложением IN и подзапросом
UPDATE `wphh_wp_eStore_tbl`
SET `wphh_wp_eStore_tbl`.description = '<div class="dwrp">
<h2>F. Locker $109.99</h2>
<h2>Nike Outlet $109.99</h2>
<h2>Ch. Sports $107.99</h2>
<h2>Hoopers Hookup $89.99</h2>
<h2 class="special">These prices as of 11/20/13</h2>'
WHERE `wphh_wp_eStore_tbl`.id in (
SELECT `wphh_wp_eStore_tbl`.id FROM `wphh_wp_eStore_tbl`
INNER JOIN `wphh_wp_eStore_cat_prod_rel_tbl`
on `wphh_wp_eStore_cat_prod_rel_tbl`.prod_id = `wphh_wp_eStore_tbl`.id
WHERE `wphh_wp_eStore_cat_prod_rel_tbl`.cat_id = 5
)
Это порождает следующую ошибку:
#1093
- You can't specify target table 'wphh_wp_eStore_tbl' for update in FROM clause
Почему? Я знаю в MSSQL. Я могу это сделать:
Update tableone
set columnname = 'xxx'
where id in (
select id
from tableone
where category = 10)
и он работает.
Что мне не хватает?
Спасибо! Это прекрасно сделал трюк! –