Is there a reason why the following UPDATE statement produces an error
UPDATE `t1`
INNER JOIN `t2` ON `t2`.`id`=`t1`.`t2_id`
INNER JOIN `t3` ON `t2`.`t3_id` = `t3`.`id` AND `t3`.`a_id` = '123'
WHERE `t2`.`date` > '2012-08-14'
AND `t2`.`status` = 'pending'
SET `t1`.`active` = '0';
The error I get is:
#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 `t2`.`date` > '2012-08-14' AND `t2`.`statu' at line 4
The following (related) SELECT statement works okay
SELECT `t1`.*
FROM `t1`
INNER JOIN `t2` ON `t2`.`id`=`t1`.`t2_id`
INNER JOIN `carer` ON `t2`.`t3_id` = `t3`.`id` AND `t3`.`a_id` = '123'
WHERE `t2`.`date` > '2012-08-14'
AND `t2`.`status` = 'pending'
The MySQL UPDATE
syntax is:
UPDATE [LOW_PRIORITY] [IGNORE] table_references
SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ...
[WHERE where_condition]
Use this:
UPDATE `t1`
INNER JOIN `t2` ON `t2`.`id`=`t1`.`t2_id`
INNER JOIN `t3` ON `t2`.`t3_id` = `t3`.`id` AND `t3`.`a_id` = '123'
SET `t1`.`active` = '0'
WHERE `t2`.`date` > '2012-08-14'
AND `t2`.`status` = 'pending' ;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With