提问人:S T 提问时间:9/19/2023 最后编辑:forpasS T 更新时间:9/19/2023 访问量:56
在SQLite中使用join的更新问题
Update issue using join in SQLite
问:
大家早上好,
如果此问题已得到解决,深表歉意,我正在尝试运行以下查询。我复制了我的表以创建联接。
我已经在表 A 中确定了 null Propertyaddress(表 A 中缺少 28 个单元格的属性地址)。然后,我希望通过将表 A 连接到表 B 来插入 PropertyAddress 表 B 中的地址。
尽管将表 A 联接到表 B 的查询正常运行,但由于操作错误,我无法更新该表。
我能够成功运行:
%%sql
SELECT A1.PropertyAddress, A1.ParcelID, B2.PropertyAddress, B2.ParcelID, IFNULL(A1.PropertyAddress, B2.PropertyAddress)
FROM Nashvillehousing A1
JOIN Nashvillehousing B2
ON A1.ParcelID = B2.ParcelID
AND A1.UniqueID <> B2.UniqueID
WHERE A1.PropertyAddress IS NULL
但是,我无法运行以下内容:
(sqlite3.OperationalError) no such table: A1
[SQL: UPDATE A1
SET PropertyAddress = IFNULL(A1.PropertyAddress, B2.PropertyAddress)
FROM Nashvillehousing as A1
JOIN Nashvillehousing as B2
ON A1.ParcelID = B2.ParcelID
AND A1.UniqueID <> B2.UniqueID
WHERE A1.PropertyAddress IS NULL]
我感谢任何意见!
我尝试了不同的别名、句点、下划线,但是我的别名表仍然无法识别 UPDATE 查询。
我希望将缺失的值从表 B2 插入到表 A1 中,作为没有缺失属性地址的更新表。
答:
0赞
forpas
9/19/2023
#1
您正在使用 SQL Server 的语法进行语句中的联接。UPDATE
UPDATE Nashvillehousing AS A1
SET PropertyAddress = B2.PropertyAddress
FROM Nashvillehousing AS B2
WHERE A1.ParcelID = B2.ParcelID AND A1.UniqueID <> B2.UniqueID
AND A1.PropertyAddress IS NULL AND B2.PropertyAddress IS NOT NULL;
另外,我更改为只是因为该子句仅返回带有 in 的行。IFNULL(A1.PropertyAddress, B2.PropertyAddress)
B2.PropertyAddress
WHERE
null
PropertyAddress
评论
0赞
S T
9/19/2023
谢谢forpas,这已经成功了!我已经标记了您发送的链接。不幸的是,还不能投票,但这绝对解决了我的问题。
评论