我有以下四个MySQL表
Region
RegionId
City
CityId
RegionId
Hotel
HotelId
CityId
HotelRegion
HotelId
RegionId
我正在努力编写UPDATE语句,以便从HotelRegion表中的数据更新City表的RegionId字段。
基本上我如何使用正确的RegionId更新City表,其中HotelRegion表中的HotelId与City表的CityId匹配。
这是我目前的UPDATE声明
UPDATE City c
SET c.RegionId =
(SELECT DISTINCT(HotelRegion.RegionId) FROM HotelRegion
INNER JOIN Hotel ON Hotel.HotelID = HotelRegion.HotelID
INNER JOIN City ON City.CityId = Hotel.CityId
WHERE City.CityId = 1233)
WHERE c.CityId = 1233
我得到的错误消息是您无法在FROM子句中为更新指定目标表'c'。 如果您需要更多信息来帮助回答我的问题,请告诉我
答案 0 :(得分:0)
在必须测试之后,我设法让以下更新查询正常工作
UPDATE City
INNER JOIN Hotel ON City.CityId = Hotel.CityId
INNER JOIN HotelRegion ON Hotel.HotelId = HotelRegion.HotelId
SET City.RegionId = HotelRegion.RegionId
WHERE City.CityId = 1223
AND Hotel.CityId = 1223