MySQL INSERT INTO ...具有子查询条件的SELECT

时间:2015-02-03 16:50:27

标签: mysql subquery

我需要将字段中具有重复值的所有记录导出到不同的表。即,必须复制code出现多次的所有记录。

这是我试过的查询:

INSERT INTO alternatives
SELECT * FROM winter WHERE code IN 
    (SELECT code
     FROM winter
     GROUP BY code
     HAVING COUNT(*) > 1)

但没有任何反应,mysql客户端无限期挂起,直到我停止它,并且alternatives表中没有任何记录。我做错了什么?

或者,有没有更好的方法来做我需要的?

1 个答案:

答案 0 :(得分:1)

实际上,您的查询应该有效。我不知道,但您可以尝试INNER JOIN而不是IN条款。类似的东西:

-- INSERT INTO alternatives
SELECT * FROM winter
INNER JOIN
    (SELECT code
     FROM winter
     GROUP BY code
     HAVING COUNT(code) > 1) DUP ON winter.code = DUP.code

首先,不使用INSERT语句进行尝试。如果有效,你知道该怎么做。