我正在處理帶有多個列的住房資料。在清理過程中,我注意到在「PropertyAddress」列中有一些Null值,並且我想確認這些Null值是否可以與ParcelID相符。因此,我編寫了以下查詢來確認前面的斷言,並在查詢下方顯示結果。
SELECT a.ParcelID, a.PropertyAddress, b .ParcelID, b.PropertyAddress FROM nashville_housing a JOIN nashville_housing b on a.ParcelID = b.ParcelID AND a.UniqueID <> b.UniqueID WHERE a.PropertyAddress is null;
包裹ID | 屬性位址 | 包裹ID | 屬性位址 |
---|---|---|---|
092 13 0 322.00 | 空 | 092 13 0 322.00 | 237 37TH AVE N,納許維爾 |
043 04 0 014.00 | 空 | 043 04 0 014.00 | 112 HILLER DR,老胡桃木 |
026 05 0 017.00 | 空 | 026 05 0 017.00 | 208 東大道,古德萊特維爾 |
042 13 0 075.00 | 空 | 042 13 0 075.00 | 222 FOXBORO DR,麥迪遜 |
在確認可以使用ParcelID將Null值更改為正確的PropertyAddress後,我編寫了UPDATE查詢:
UPDATE nashville_housing SET PropertyAddress = ( SELECT a.ParcelID, b.PropertyAddress, b .ParcelID, b.PropertyAddress FROM nashville_housing a JOIN nashville_housing b on a.ParcelID = b.ParcelID AND a.UniqueID <> b.UniqueID WHERE a.PropertyAddress is null);
但是出現錯誤「Error Code: 1241. Operand should contain 1 column(s)」
所以,我將查詢重寫為:
UPDATE a SET PropertyAddress = IFNULL(a.PropertyAddress,b.PropertyAddress) WHERE a.PropertyAddress is null;
但是出現錯誤「Error Code: 1146. Table 'nasville_housing.a' doesn't exist」
最後,我寫了:
UPDATE a SET PropertyAddress = IFNULL(a.PropertyAddress,b.PropertyAddress) in ( SELECT a.ParcelID, b.PropertyAddress, b .ParcelID, b.PropertyAddress FROM nashville_housing a JOIN nashville_housing b on a.ParcelID = b.ParcelID AND a.UniqueID <> b.UniqueID WHERE a.PropertyAddress is null);
但是出現錯誤「Error Code: 1146. Table 'nasville_housing.a' doesn't exist」
我感謝任何人能給我的支持。
您可以使用JOIN進行UPDATE操作:https://www.mysqltutorial.org/mysql-update-join/