这是我的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。
答案 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);
如果您有更复杂的规则来确定选择哪个名称,则需要以不同方式实施。