gpt4 book ai didi

MySQL INSERT ...SELECT 与 SUBQUERY

转载 作者:行者123 更新时间:2023-11-29 06:18:33 25 4
gpt4 key购买 nike

我必须执行插入查询,从另一个表插入数据,

条件:如果我有 'codigoTipo' = 'A' ,则 'numero' 列应该是最后一个 'numero' + 1

例如:

id | codigoTipo   |   numero 
1 | A | 1
2 | O | 1
3 | A | 2
4 | A | 3
   INSERT asociados (id, codigoTipo, numero, cp, direccion, email, fax, movil, nombre, nombreEncargado,  telefono, website, idLocalidad) 
SELECT p.id, 'A', (MAX(asociados.numero)+1 ) , p.postalcode, p.address, p.mail, p.fax, p.movil, p.name, p.charge_person, p.phone, p.website, p.locality
FROM
partners as p, asociados

我怎样才能做到这一点?我的代码有错误。

编辑:codigoTipo 和 numero 是一个复合PK,这就是为什么我需要“numero”列中的自动增量数字

最佳答案

您可以使用子查询来获取最大数字。

INSERT asociados (id, codigoTipo, numero, cp, direccion,
email, fax, movil, nombre, nombreEncargado, telefono, website, idLocalidad)
SELECT p.id, 'A', dm.MaxNum + 1 , p.postalcode, p.address,
p.mail, p.fax, p.movil, p.name, p.charge_person,
p.phone, p.website, p.locality
FROM partners as p, (SELECT MAX(numero) MaxNum FROM asociados) dm

更新:如果您希望插入的行增加,请使用以下查询:

INSERT asociados (id, codigoTipo, numero, cp, direccion,
email, fax, movil, nombre, nombreEncargado, telefono, website, idLocalidad)
SELECT p.id, 'A', @r := @r + 1 , p.postalcode, p.address,
p.mail, p.fax, p.movil, p.name, p.charge_person,
p.phone, p.website, p.locality
FROM partners as p, (SELECT @r := MAX(numero) MaxNum FROM asociados) dm

关于MySQL INSERT ...SELECT 与 SUBQUERY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5070530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com