我有一个更新查询,它更新 2 个表,其中一个用不同的别名重复。引擎是 MySQL。如果我分别运行这三个查询,它们可以正常工作,但如果我将它们全部放在一个查询中,它就会失败。
这是查询:
UPDATE
users AS u1,
users AS u2,
customer AS c
SET
u1.`active` = '1',
u2.`address` = 'something 234',
c.`status` = '3'
WHERE
(u1.`user_name` = 'Tomas'
AND u1.`user_lastname` = 'Smith'
AND u1.`user_middle` = 'Nikolas')
AND (u2.`user_type` = '5'
AND u2.`user_email` = 'an_email@gmail.com'
AND u2.`register_date` = 'some_date')
AND c.`id` = '8';
如果我单独运行查询,用户表更新不会更新任何行(没关系),客户只更新一行(也没关系)。
我期待只用一个查询而不是三个查询来完成所有操作。
这三个查询如下所示:
UPDATE users AS u1 SET u1.`active` = '1' WHERE u1.`user_name` = 'Tomas' AND u1.`user_lastname` = 'Smith' AND u1.`user_middle` = 'Nikolas';
UPDATE users AS u2 SET u2.`address` = 'something 234' WHERE u2.`user_type` = '5' AND u2.`user_email` = 'an_email@gmail.com' AND u2.`register_date` = 'some_date';
UPDATE customer AS c SET c.`status` = '3' WHERE c.`id` = '8';
正如我之前向您展示的那样,我希望所有这些都在一个查询中。这些查询之间没有关系,只是我想一次运行所有不同的查询以进行改进。
我不知道这是否可能。
感谢您阅读我的问题。