当一列是唯一的时,INSERT SELECT查询

时间:2012-07-25 11:21:40

标签: mysql database insert duplication insert-select

我需要调用INSERT + SELECT将用户数据导入到不同的表中,我需要过滤user_name重复,所以我需要这样的东西:

INSERT INTO new_table SELECT email, distinct user_name, password from old_table

但仅在使用distinct email, user_name, password时才有效,并且所有这些列都必须是唯一的。

有没有其他方法可以使用uniq user_names插入select,(我只需要第一行 - ID较低)?

编辑我忘记提到我使用的是mysql

1 个答案:

答案 0 :(得分:2)

如果没有测试,我会期望这样的事情(假设id列被命名为id)

INSERT INTO new_table 
    SELECT email, user_name, password 
    FROM old_table 
    INNER JOIN 
        ( SELECT MIN(id) FROM old_table GROUP by user_name ) minids
    ON minids.id = old_table.id