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