Fórum Inserir dados de duas tabelas #265405
14/01/2005
0
Boa Tarde,
Gostaria de saber se é possivel INSERIR DADOS em uma tabela da seguinte forma:
TABELA CLIENTES - #CODIGO,PEDIDO,CLIENTE, VALOR
TABELA ITENS - CODIGO,PEDIDO,COR,PESO
TABELA OTIMIZADA CODIGO,PEDIDO,CLIENTE,VALOR,COR,PESO
FIZ A SEGUINTE SQL
INSERT INTO OTIMIZADA (A.CODIGO,A.PEDIDO,A.CLIENTE,A.VALOR,B.COR,B.PESO) SELECT A.CODIGO,A.PEDIDO,A.CLIENTE,A.VALOR,B.COR,B.PESO FROM
CLIENTE A, ITENS B WHERE A.CODIGO=B.CODIGO
DA UM ERRO DIZENDO QUE A TABELA B NAO EXISTE
não é possivel inserir dados de duas tabelas em uma terceira tabela?
tks
Alex
:arrow: [color=red:19a899dd16]Título alterado pelo moderador oTTo. (Upper)[/color:19a899dd16]
Alexguara
Curtir tópico
+ 0Posts
14/01/2005
Vinicius2k
Colega,
Neste tópico ocorreu infração às Regras de Conduta do Fórum :
[list:3f74fa823f][*:3f74fa823f]Utilização de letras maiúsculas (equivalente a gritar e dando destaque injusto) no título e texto do tópico.[/list:u:3f74fa823f]
Peço que leia atentamente as [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=6689]Regras de Conduta[/url] para evitar que este fato se repita.
Se algum esclarecimento sobre o funcionamento do fórum ou sobre as Regras de Conduta for necessário, envie-me uma [url=http://delphiforum.icft.com.br/forum/privmsg.php?mode=post&u=2796]Mensagem Particular[/url].
Gostei + 0
14/01/2005
Paulo_amorim
Como é a primeira msg do usuário, não creio que o tópico será bloqueado e portanto não custa tentar ajudar:
Pode-se, sim, fazer insersões a partir de SELECT´s, mas não eh necessário nesse caso especificar campos:
INSERT INTO otimizada SELECT A.CODIGO, A.PEDIDO, A.CLIENTE, A.VALOR, B.COR, B.PESO FROM CLIENTE A, ITENS B WHERE A.CODIGO = B.CODIGO
Espero que ajude
Até+
Gostei + 0
20/01/2005
Alexguara
fiz conforme vc demonstrou no exemplo acima,
estou utilizando mysql, e me retorna o seguinte erro :
Error 1136: Column count doesn´t match value count at row 1
Você poderia me dizer pq aconteceu este erro e nao inseriu os dados?
Tks
Alex
Gostei + 0
20/01/2005
Paulo_amorim
Esse erro ocorre porque o numero de campos do SELECT está diferente do número de campos da tabela.
O Select deve trazer o mesmo número de campos, os quais com formato (string, número, data, etc.) compatível ao campo da tabela.
P.Ex.
Tabela: COD, NOME, IDADE, CIDADE
O Select tem que ser
INSERT INTO tabela SELECT 1, ´José´, 20, ´São Paulo´ FROM ...
Se você não quer passar um campo, passe NULL no lugar, mas [b:8620e841ec]não deixe de inclui-lo[/b:8620e841ec]
INSERT INTO tabela SELECT 1, ´José´, NULL, ´São Paulo´ FROM ...
Espero que assim funcione
Até+
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)