2016-09-09 5 views
0

Я хочу обновить поле в моей базе данных. У меня есть две таблицы и поля таблицы, как пыльникОбновить таблицу с соединением в mysql

Таблицаoperations_per_assemblyполеoperation_id,is_mecahnical

Таблицаoperationsполеid,repair_type_id

Теперь я хочу, чтобы обновить is_mechanical поле, где repair_type_id =

Мой запрос

UPDATE 
    `operations_per_assembly` 
    JOIN `operations` 
    ON `operations`.`id` = `operations_per_assembly`.`operation_id` 
    SET `operations_per_assembly`.`is_mechanical` = '4' 
    WHERE `operations_per_assembly`.`operation_id` = `operations`.`id` 
    AND `operations_per_assembly`.repair_type_id = 3 

Пожалуйста, помогите мне.

+0

что вы ожидаете произойдет, и что на самом деле происходит? – Loopo

+0

Я редактировал вопрос, пожалуйста, проверьте. –

+0

'Я сделал несколько запросов, но не работал' ... ОК, но _what_ не работает? –

ответ

1

Поставьте условие repair_type_id = 3 в условия соединения. Таким образом, вы говорите, чтобы присоединиться только к repair_type_id = 3, поэтому вы получите только эти записи.

UPDATE 
    `operations_per_assembly` 
    JOIN `operations` 
    ON `operations`.`id` = `operations_per_assembly`.`operation_id` AND `operations`.repair_type_id = 3 
    SET `operations_per_assembly`.`is_mechanical` = '4' 
+0

Спасибо, что он работает. –

+0

Добро пожаловать. –

0
UPDATE `operations_per_assembly` a 
JOIN `operations` b 
    ON a.operation_id = b.id 
SET a.is_mechanical = '4' 
WHERE codition (user proper condition) 
+0

Не работает .... –

+0

Пожалуйста, всегда давайте некоторое объяснение, а не только простой код – andreas

0

В статье WHERE вы используете operations_per_assembly. repair_type_id, но ваш стол operations_per_assembly не содержит repair_type_id.

Так попробуйте ниже запрос:

UPDATE `operations_per_assembly` PAS 
JOIN `operations` OPE ON OPE.`id` = PAS.`operation_id` 
SET PAS.`is_mechanical` = '4' 
WHERE OPE.repair_type_id = 3 
Смежные вопросы