【问题标题】:Why am I getting error on FROM statement?为什么我在 FROM 语句中出现错误?
【发布时间】:2021-11-09 05:25:34
【问题描述】:
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;

【问题讨论】:

  • 用您正在使用的数据库标记您的问题。这不是标准 SQL,在大多数数据库中都不起作用。
  • 这看起来更像 SQL-Server 语法而不是 MySQL。
  • MySQL 在UPDATE 中没有FROM 子句。您在UPDATE 子句中命名第一个表。
  • @GordonLinoff 它被标记为mysql

标签: mysql join sql-update


【解决方案1】:

在 MySQL 中,语法是:

UPDATE nashvillehousing nh JOIN
       nashvillehousing nh2
       ON nh.ParcelID = nh2.ParcelID
    SET nh.PropertyAddress =  nh2.PropertyAddress)
    WHERE nh.UniqueID <> nh2.UniqueID AND
          nh2.PropertyAddress is null;

注意使用有意义的 表别名(表名的缩写),而不是任意字母。此外,不需要coalesce(),因为WHERE 子句过滤掉了NULL 值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-02
    • 2013-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多