You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行带FROM子句的UPDATE SQL语句时为何FROM部分出现报错?

SQL UPDATE语句FROM子句报错排查方案

你运行的SQL语句如下:

UPDATE a
  SET a.PropertyAddress = COALESCE(a.PropertyAddress,b.PropertyAddress)
    FROM nashvillehousing as a
    JOIN nashvillehousing as b
    ON a.ParcelID = b.ParcelID
       WHERE a.UniqueID <> b.UniqueID
       AND a.PropertyAddress is null;

可按以下步骤排查报错原因:

  • 检查数据库是否支持UPDATE-FROM语法:该语法仅PostgreSQL、SQL Server、SQLite 3.33.0及以上版本支持,如果你使用的是MySQL这类不支持该语法的数据库,直接删除FROM子句,将表关联逻辑移到UPDATE之后即可,修改后示例:
    UPDATE nashvillehousing a 
    JOIN nashvillehousing b ON a.ParcelID = b.ParcelID
    SET a.PropertyAddress = COALESCE(a.PropertyAddress,b.PropertyAddress) 
    WHERE a.UniqueID <> b.UniqueID AND a.PropertyAddress is null;
    
  • 检查别名使用规则是否符合要求:部分数据库要求UPDATE后直接跟目标表原名,不能直接接别名,可尝试将UPDATE后的a改为原表名nashvillehousing再测试。
  • 检查语法拼写错误:确认表名nashvillehousing、字段名PropertyAddress、ParcelID、UniqueID没有拼写错误,关联条件、逻辑运算符书写正确。
  • 检查账号操作权限:确认当前使用的数据库账号拥有该表的UPDATE权限以及多表查询权限,部分权限限制也会抛出指向FROM子句的错误。

内容的提问来源于stack exchange,提问作者Noble Nelson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 14:42:00