你好 - 我是MySQL Noob。我有一個各種商業列表的表,我試圖填充第二個表,稱爲城市,其中包含獨特的城市名稱以及每個城市有多少列表。我能夠做的SELECT語句讓我這個數據細,像這樣:MySQL INSERT INTO/ON複製鍵與SELECT語句問題
SELECT city,state,sum(count)
FROM (
SELECT city,state, 1 AS count FROM listings
) results
GROUP BY city
ORDER BY sum(count) DESC,city;
不過,現在我想更新表,但我似乎無法得到適當的語句來工作。這是我擁有的最新版本,但是我目前收到「無效的組功能使用」錯誤。
INSERT INTO cities(city,state,size)
SELECT city,state,sum(count)
FROM (
SELECT city,state, 1 AS count FROM listings
) results
ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), size=sum(count);
任何幫助表示讚賞!
我想我們只是發佈了相同的查詢。 – Dereleased
嗯,這個工程,但它似乎是爲每個重複的城市增加另一個條目與更新以前的條目。我想這就是我通過聲明中的「重複關鍵更新」部分得到的結果。 – sepulturkey
如果您首先對錶格進行分段,則不需要使用DUPLICATE KEY。但如果你真的想要UN DUPLICATE KEY(這並不是一個糟糕的方法),那麼你需要在(城市,州)上有一個PRIMARY或UNIQUE鍵,而你可能沒有這個鍵。 – longneck