2016-07-13 2 views
-1

Ребята Я застрял в запросе MySql. Ниже приведен мой запрос к SELECT данным из моей базы данных. Я застрял на Update запрос на обновление Price.Нужна помощь в запросе на обновление mysql

Select Query

SELECT p.id, p.post_title, m.meta_key as Type, m.meta_value as SKU ,k.meta_value as price 
FROM wp8k_posts p 
INNER JOIN wp8k_postmeta m ON p.id=m.post_id 
AND m.meta_key='_sku' 
INNER JOIN wp8k_postmeta k ON p.id=k.post_id 
AND k.meta_key='_sale_price' 
where m.meta_value= 'GLC-LH-SM' 

Update Query

Update wp8k_postmeta k 
INNER JOIN wp8k_posts p ON p.id=m.post_id 
AND m.meta_key='_sku' 
INNER JOIN wp8k_postmeta k ON p.id=k.post_id 
AND k.meta_key='_sale_price' 
set k.meta_key = 90 
where m.meta_value= 'GLC-LH-SM' 

кто может помочь, пожалуйста.

+0

И что exectly это проблема? – Jens

+0

запрос на обновление не работает вообще –

+0

Что происходит, когда вы пытаетесь выполнить запрос на обновление? Вы получаете ошибку базы данных или обновляете неправильные строки? –

ответ

0

Вы должны использовать уникальные aliasses для всех таблиц:

Update wp8k_postmeta k 
INNER JOIN wp8k_posts p ON p.id=k.post_id AND k.meta_key='_sale_price' 
INNER JOIN wp8k_postmeta m ON p.id=m.post_id AND m.meta_key='_sku' 
set k.meta_key = 90 
where m.meta_value= 'GLC-LH-SM' 
+0

его высказывание '# 1054 - Неизвестная колонка 'm.meta_value' в 'where clause'' –

+0

@FahadBinZafar см. Мой обновленный ответ – Jens

+0

Это сработало. но нужно изменить 'set k.meta_key = 90' на' set k.meta_value = 90' –

Смежные вопросы