Heim > Fragen und Antworten > Hauptteil
Ich arbeite an Wohnungsdaten mit mehreren Spalten. Während des Reinigungsvorgangs ist mir aufgefallen, dass die Spalte „PropertyAddress“ einige Nullwerte enthält, und ich wollte bestätigen, ob diese Nullwerte mit der ParcelID abgeglichen werden können. Daher habe ich die folgende Abfrage geschrieben, um die vorherige Behauptung zu bestätigen und die Ergebnisse unterhalb der Abfrage anzuzeigen.
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;
Paket-ID | Attributadresse | Paket-ID | Attributadresse |
---|---|---|---|
092 13 0 322,00 | leer | 092 13 0 322,00 | 237 37TH AVE N, Nashville |
043 04 0 014.00 | leer | 043 04 0 014.00 | 112 HILLER DR, Nussbaum alt |
026 05 0 017.00 | leer | 026 05 0 017.00 | 208 East Avenue, Goodlettville |
042 13 0 075.00 | leer | 042 13 0 075.00 | 222 FOXBORO DR, Madison |
Nachdem ich bestätigt habe, dass ich ParcelID verwenden kann, um den Nullwert in die richtige PropertyAddress zu ändern, habe ich die UPDATE-Abfrage geschrieben:
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);
Aber es ist ein Fehler aufgetreten „Fehlercode: 1241. Operand sollte 1 Spalte(n) enthalten“
Also habe ich die Abfrage wie folgt umgeschrieben:
UPDATE a SET PropertyAddress = IFNULL(a.PropertyAddress,b.PropertyAddress) WHERE a.PropertyAddress is null;
Aber der Fehler „Fehlercode: 1146. Tabelle 'nasville_housing.a' existiert nicht“
Abschließend schrieb ich:
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);
Aber der Fehler „Fehlercode: 1146. Tabelle 'nasville_housing.a' existiert nicht“
Ich freue mich über jede Unterstützung, die mir jemand geben kann.
P粉6396675042024-01-11 11:00:51
您可以使用JOIN进行UPDATE操作:https://www.mysqltutorial.org/mysql-update-join/
UPDATE nashville_housing a LEFT JOIN nashville_housing b ON a.ParcelID = b.ParcelID AND a.UniqueID <> b.UniqueID SET a.PropertyAddress = b.PropertyAddress WHERE a.PropertyAddress IS NULL;