2014-05-21 3 views
0

Im пытается написать MySQL запрос, который будет найти значение для вставки через подзапросом и только вставить в строку, которая имеет идентификатор, который указан MySQL дает мне эту ошибкуMysql Subquery Outer Где

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE product_id = '1'' at line 8 

Но я до сих пор знаю, что синтаксис должен быть какой-либо помощью, - это мой текущий запрос.

Льюис

INSERT INTO oc_product 
     (tax_class_id) 
     (
      SELECT tax_class_id 
      FROM oc_tax_class 
      WHERE title = 'Taxable Goods' 
     ) 
     WHERE product_id = '1' 

EDIT: им идиотом и я должен был с помощью UPDATE не вставить его теперь исправлена.

+2

где применяются для существующих записей, не для создания новых записей, и я думаю, вам нужен где фильтр во внутреннем запросе выбора или вам может понадобиться обновление вместо вставки –

+1

@MKhalidJunaid. Ваше право им быть идиотом обменивается им. UPDATE, и он работает спасибо :) –

+0

Вы можете использовать INSERT иногда в таких ситуациях. Вы можете использовать синтаксис ON DUPLICATE KEY UPDATE. Это полезно в том, что вы хотите вставить запись, если она не существует, но обновите ее, если она существует. – Kickstart

ответ

1

Если я понять ваш вопрос правильно, я думаю, что вы или хотите вставить новую строку с product id = 1:

INSERT INTO oc_product (product_id, tax_class_id) 
SELECT 1, tax_class_id 
FROM oc_tax_class 
WHERE title = 'Taxable Goods' 
+1

Это было наоборот, я хотел быть ОБНОВЛЕНО, но я устал, спасибо за ваш вход. –