INSERT IGNORE가 데이터 변환과 함께 작동하지 않는 것처럼 보이기 때문에 REPLACE가 때때로 필요한 것 같습니다.
이렇게하면 가장 큰 도시 팝을 자체로 설정합니다.
INSERT IGNORE INTO largerCities (stateID, maximumCityPop, statePop) SELECT stateID, MAX (city.pop) as maximumCityPop, state.pop FROM city JOIN state on city.stateID = state.ID GROUP BY city.stateID ON DUPLICATE KEY UPDATE 최대 CityPop = 최대 도시 팝
이렇게하면 GROUP 함수를 부적절하게 사용하고 있습니다.
INSERT IGNORE INTO maximumCities (stateID, maximumCityPop, statePop) SELECT stateID, MAX (city.pop) as maximumCityPop, state.pop FROM city JOIN state on city.stateID = state.ID GROUP BY city.stateID ON DUPLICATE KEY UPDATE maximumCityPop = MAX (city.pop)
이렇게하면 MySQL은 열 이름을 인식하지 못합니다.
INSERT IGNORE INTO largerCities (stateID, maximumCityPop, statePop) SELECT stateID, MAX (city.pop) as maximumCityPop, state.pop FROM city JOIN state on city.stateID = state.ID GROUP BY city.stateID ON DUPLICATE KEY UPDATE maximumCityPop = city .largestCityPop
이것은 작동하지만 그냥 추한 것 같습니다.
INSERT IGNORE INTO largerCities (stateID, maximumCityPop, statePop) SELECT * FROM (SELECT stateID, MAX (city.pop) as biggestCityPop, state.pop FROM city JOIN state on city.stateID = state.ID GROUP BY city.stateID) x ON 중복 키 업데이트 largeCityPop = biggestCityPop