【mysql】在MySql中使用WITH子句和UPDATE

使用WITH子句定义CTE不会将该CTE隐式连接到查询中的其他表,需要在查询CTE时使用联接:

正确写法

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;

错误写法

查询出错 `Error Code: 1054. Unknown column ‘updateables.id_product’ in 'where clause````

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