Mysql SQL联接表,但排除除1之外所有列都匹配的重复项

Mysql SQL联接表,但排除除1之外所有列都匹配的重复项,mysql,sql,join,duplicates,union,Mysql,Sql,Join,Duplicates,Union,我几乎没有SQL方面的经验,需要连接具有许多重复条目的表。 我已经浏览了相当多的答案,我能找到的最接近我的问题是: 它建议使用此代码,以便根据表的名称和邮政编码列匹配表 INSERT INTO TABLE1 SELECT * FROM TABLE2 A WHERE NOT EXISTS (SELECT 1 FROM TABLE1 X WHERE A.NAME = X.NAME AND A.post_code = x.p

我几乎没有SQL方面的经验,需要连接具有许多重复条目的表。 我已经浏览了相当多的答案,我能找到的最接近我的问题是:

它建议使用此代码,以便根据表的名称和邮政编码列匹配表

INSERT INTO TABLE1
SELECT * FROM TABLE2 A
WHERE NOT EXISTS (SELECT 1 FROM TABLE1 X 
                  WHERE A.NAME = X.NAME AND 
                  A.post_code = x.post_code)

我唯一的问题是我有几十个专栏,不想把它们都写出来。 基本上,除了datetime列之外,我需要删除所有列都相同的重复项

(在不同的时间输入的重复项,因此即使datetime列中的值不同,对我来说这仍然是重复项。)

是否有方法连接表,但删除除1列之外所有列都匹配的重复项

更新:

非常感谢你的回答!我可能做错了,但现在我遇到了SQL错误,因为列太多了:

在audi_all上创建唯一索引unq_audi_all_列(
Vehicle
listedprice
Anunciante
Marca
Modelo
Série
Versão
燃烧层
Mè去登记
去登记
基尔
Cilindrada
ode>Aceita retoma
Possibilidade de financiamento
Cor
Tipo de Caixa
Número de Mudanças
Nºde portas
Lotaç
Classe do veíículo
Tracççççço
Livro de Revisões completo
Não fumador
2ºChave
Jantes de Liga Leve
Ar Condicinodo
Inspecço válida até
Origem
Estofos
安全气囊编号
特殊过滤
Tecto de Abrir
Medida Jantes de Liga Level
VIN
IVA dedutível
排放二氧化碳
IUC
ou até
材料
Conso Combino
乌莫乌尔巴诺
Consumo Extra Urbano
Capota
Capota Eléctrica
Clássico
Salvado
Valor sem IUC
Valor sem ISV
,[…]

MySQL说:文档


1070-指定的关键部分太多;最多允许32个部分通过创建唯一索引防止重复:

create unique index unq_table1_all_columns on table1 ( . . . );  -- you gotta list the columns here.
您确实需要列出这些列,但这是必要的,以便数据库了解您的意图。使用以下内容可以轻松构建列表:

select group_concat(column_name, ', ')
from information_schema.columns
where table_name = 'table1';
如果存在重复项,则插入操作将返回错误。或者要避免重复项,请在重复密钥更新时使用

insert into table1 
    select *
    from table2
    on duplicate key update name = values(name);  -- this does nothing but it avoids an error on a duplicated row

这里的大多数人都希望样本数据和预期结果是格式化文本。(没有图像,没有链接。)@jarlh“Most”可能有些夸张