MYSQL Insert com select
Bom dia pessoal.
Estou com um problema em um insert into passando um select, o número de colunas bate mas volta um erro.
insert into `numeros_uso` (numeros_uso.estado,numeros_uso.arealocal ,numeros_uso.num_licenciados) values (
(select E.nomeEstado, A.areaLocal, sum(N.total_range)
from arealocal as A
left join municipios as M on A.cnlAl = M.cnlAl
left join numeracao_tvn as N on M.cnl = N.cnl
left join codigoarea as C on A.cn = C.cn
left join estados as E on C.idEstado = E.id
where
N.cnl is not NULL and
A.rn1 = 55188
group by A.areaLocal)
)
Se eu executo só o select roda normal. O erro que dá é esse aqui:
"Column count doesn´t match value count at row 1"
Estou com um problema em um insert into passando um select, o número de colunas bate mas volta um erro.
insert into `numeros_uso` (numeros_uso.estado,numeros_uso.arealocal ,numeros_uso.num_licenciados) values (
(select E.nomeEstado, A.areaLocal, sum(N.total_range)
from arealocal as A
left join municipios as M on A.cnlAl = M.cnlAl
left join numeracao_tvn as N on M.cnl = N.cnl
left join codigoarea as C on A.cn = C.cn
left join estados as E on C.idEstado = E.id
where
N.cnl is not NULL and
A.rn1 = 55188
group by A.areaLocal)
)
Se eu executo só o select roda normal. O erro que dá é esse aqui:
"Column count doesn´t match value count at row 1"
Raphael Antonio
Curtidas 0
Melhor post
Emerson Nascimento
04/09/2020
ao usar insert a partir de select não use values();
o group by estava errado: faltava incluir o campo E.nomeEstado;
o group by estava errado: faltava incluir o campo E.nomeEstado;
insert into numeros_uso (estado, arealocal, num_licenciados) select E.nomeEstado, A.areaLocal, sum(N.total_range) from arealocal as A left join municipios as M on A.cnlAl = M.cnlAl left join numeracao_tvn as N on M.cnl = N.cnl left join codigoarea as C on A.cn = C.cn left join estados as E on C.idEstado = E.id where N.cnl is not NULL and A.rn1 = 55188 group by E.nomeEstado, A.areaLocal
GOSTEI 2
Mais Respostas
Raphael Antonio
04/09/2020
ao usar insert a partir de select não use values();
o group by estava errado: faltava incluir o campo E.nomeEstado;
o group by estava errado: faltava incluir o campo E.nomeEstado;
insert into numeros_uso (estado, arealocal, num_licenciados) select E.nomeEstado, A.areaLocal, sum(N.total_range) from arealocal as A left join municipios as M on A.cnlAl = M.cnlAl left join numeracao_tvn as N on M.cnl = N.cnl left join codigoarea as C on A.cn = C.cn left join estados as E on C.idEstado = E.id where N.cnl is not NULL and A.rn1 = 55188 group by E.nomeEstado, A.areaLocal
Era o values mesmo. Não sabia que não poderia usar com o select.
Obrigado pela ajuda!!!!
GOSTEI 0