在创建新表时插入另一个表中的值

时间:2013-02-22 09:55:20

标签: mysql sql join

这是我的FIDDLE

我正在尝试将旧表中的数据导入新表。在旧表中,有许多没有重复。在新表中,我只能插入DISTINCT电子邮件。我无法将名称插入相同的名称。这是我的代码。

CREATE TABLE table_old(name VARCHAR(255), email VARCHAR(255));

INSERT INTO table_old (name, email) VALUES ('tom', 'tom@gmail.com'),
                                           ('peter', 'peter@gmail.com'),
                                           ('hitler', 'hitler@gmail.com'),
                                           ('haasan', 'haasan@gmail.com'),
                                           ('arun', 'arun@gmail.com'),
                                           ('tom', 'tom@gmail.com'),
                                           ('peter', 'peter@gmail.com'),
                                           ('hitler', 'hitler@gmail.com'),
                                           ('haasan', 'haasan@gmail.com'),
                                           ('arun', 'arun@gmail.com');

CREATE TABLE table_new AS (SELECT DISTINCT email FROM table_old );

因此,请告诉我如何根据电子邮件列名称将名称插入table_new。

3 个答案:

答案 0 :(得分:2)

您可以使用以下查询。

CREATE TABLE table_new AS (SELECT DISTINCT * FROM table_old );

答案 1 :(得分:1)

我认为这就是你所追求的:

CREATE TABLE table_new AS (SELECT name, email FROM table_old GROUP BY name, email);

答案 2 :(得分:1)

其中一些取决于您希望如何选择保留的名称。它可以很简单:

CREATE TABLE table_new AS (SELECT email, max(name) FROM table_old group by email);

如果您有更复杂的规则来确定选择哪个名称,则需要以不同方式实施。