你好 - 我是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