Het probleem is dat de procedureparameter dezelfde naam heeft als een kolom in de tabellen. Wanneer u verwijst naar propertyid
in de query's gebruikt het de kolom, niet de parameter. Kolom- en variabelenamen zijn niet hoofdlettergevoelig, dus het maakt niet uit of u een van deze PropertyID
hebt gespeld en de andere propertyId
.
Gebruik een andere naam voor de parameter, b.v. p_propertyId
Er zijn ook geen twee vragen nodig, je kunt het in één doen met een JOIN
.
UPDATE sales.florida AS s
CROSS JOIN (
SELECT *
FROM annuals.florida
WHERE propertyId = p_propertyId
LIMIT 1) AS a
SET s.SitusLongitude = a.SitusLongitude, s.SitusLatitude = a.SitusLatitude
WHERE s.PROPERTYUNIQUEID = p_propertyId
Merk op dat het gebruik van LIMIT
zonder ORDER BY
betekent dat de geselecteerde rij onvoorspelbaar is.