将GROUP BY结果插入另一个表中

jer*_*iuh 5 mysql sql

我正在将一个字段迁移到一个新表.新表有三个字段.我试过的是

INSERT INTO foo VALUES ('', (SELECT bar FROM baz GROUP BY bar), '');
Run Code Online (Sandbox Code Playgroud)

这导致由于select导致的多行导致的错误.

这样做的正确方法是什么?

Mic*_*tta 18

如果我理解正确,你需要这样的东西:

INSERT INTO foo (col1name, col2name, col3name)
    SELECT '', bar, ''
    FROM baz
    GROUP BY bar
Run Code Online (Sandbox Code Playgroud)


Mad*_*urf 6

或者如果我正确理解你并且你想在新表中为旧表中的每个不同的条形值输入一个条目,我认为这使得它更清楚一点.

INSERT INTO foo (col2name) SELECT DISTINCT bar FROM baz
Run Code Online (Sandbox Code Playgroud)

执行计划和性能应该类似