SQL para "juntar" duas tabelas

3 respostas
C

Pessoal,

Preciso fazer um ferramenta que, dadas duas tabelas FoxPro (arrrgghhhhh) faça a união das duas. Não será gerada uma nova tabela, mas sim os dados da tabela 1 que não existem na tabela 2 serão inseridos nesta última. Pensei em algumas soluções, porém mais baseadas em Java do que em SQL, mas acredito que haja uma maneira mais fácil de se fazer usando sintaxe SQL.
Na verdade tenho dois bancos idênticos no formato mas com informações diferentes, que estão sendo atualizados diariamente. Logo, até que o pessoal termine alguns cadastros, teremos que unificar as bases de dado diariamente. Não existe a possibilidade de interligaçào das aplicações para que acessem o mesmo BD.

Alguma sugestão?

Muito obrigado!

3 Respostas

T

Não conheço muito SQL (quanto mais FoxPro, que usei em 1990 - acho que era a primeira versão do FoxPro para Windows 3.1) - mas acho que dá para usar algo parecido com “INSERT … SELECT”, e uma terceira tabela (temporária) para conter a diferença entre a primeira e a segunda tabela.

M

se existir algum código único q diferencie os registros das duas tabelas, acredito que dê pra fazer isso:

INSERT INTO Tabela2 (campos)
VALUES (SELECT * FROM Tabela1 WHERE Tabela1.Codigo NOT IN (Select Codigo FROM Tabela2))

se não houver um código que distingua, temos q pensar em alguma outra solução

espero q ajude
abraço

C

matheuscechito:
se existir algum código único q diferencie os registros das duas tabelas, acredito que dê pra fazer isso:

INSERT INTO Tabela2 (campos)
VALUES (SELECT * FROM Tabela1 WHERE Tabela1.Codigo NOT IN (Select Codigo FROM Tabela2))

se não houver um código que distingua, temos q pensar em alguma outra solução

espero q ajude
abraço

Sim, para cada tabela que eu for realizar a união, tenho registros com identificadores diferentes. Vou testar sua solução!

Pois é thingol, isso aqui é uma velharia… quem dera pudesse sempre usar um banco de dados de verdade…

Muito obrigado pessoal!

Criado 29 de novembro de 2006
Ultima resposta 29 de nov. de 2006
Respostas 3
Participantes 3