[mysql] Utilisation de la clause WITH et UPDATE dans MySql

La définition d'un CTE à l'aide de la clause WITH ne joint pas implicitement ce CTE aux autres tables de la requête, ce qui nécessite une jointure lors de l'interrogation du CTE :

bonne façon d'écrire

WITH temp_update_table AS (
    SELECT id, username
    FROM ss_user_info
    WHERE id = 12 AND state = 1
)
UPDATE sys_user JOIN temp_update_table ON product.id = temp_update_table.id
SET ss_user.name= temp_update_table.username;

mauvaise façon d'écrire

查询出错 `Code d'erreur : 1054. Colonne inconnue 'updateables.id_product' dans 'clause Where````

WITH temp_update_table AS (
    SELECT id, username
    FROM ss_user_info
    WHERE id = 12 AND state = 1
)
UPDATE sys_user 
SET sys_user.user= temp_update_table.username
WHERE sys_user.id = temp_update_table.id

おすすめ

転載: blog.csdn.net/u010638673/article/details/127884666