Jump to content


Photo

Comparacao De Tabelas


  • Faça o login para participar
8 replies to this topic

#1 Stormbringer

Stormbringer

    I'd love to stay with you all

  • Ex-Admins
  • 2927 posts
  • Sexo:Não informado
  • Localidade:Goiânia - GO
  • Interesses:Atualmente: pesquisa e desenvolvimento de web-games

Posted 24/04/2003, 11:47

Olá,

tenho 3 tabelas:

tabela1
tabela2
tabela3


ambas com os campos COD e TIPO.

Eu peciso gravar na tabela3 o TIPO da tabela1 cujo TIPO da tabela1 nao exista em nenhum registro da tabela2.

ou seja, eu vou gravar na tabela 3 apenas os tipos que não existem na tabela 2.


qual a maneira mais rápida de faze-lo? não estou conseguindo....



obrigado.

๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑


#2 Xmagnum

Xmagnum

    Turista

  • Usuários
  • 42 posts
  • Sexo:Não informado
  • Localidade:Fortaleza CE
  • Interesses:Programação PHP, jogos de PC ...

Posted 24/04/2003, 12:09

1º - Cara, depende dos tipos, isso aivai no seu script;
2º - Sua pergunta ñ esta clara, tente mandar o script da criação das tabelas.
Equipe Firemasters
Programador PHP

#3 Stormbringer

Stormbringer

    I'd love to stay with you all

  • Ex-Admins
  • 2927 posts
  • Sexo:Não informado
  • Localidade:Goiânia - GO
  • Interesses:Atualmente: pesquisa e desenvolvimento de web-games

Posted 24/04/2003, 12:55

seguinte

nas 2 primeiras tabelas tem o campo TIPO que é varchar(5);

todo registro da tabela1 cujo campo TIPO NAO existir na tabela2 deve ser gravado na tabela3...

๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑


#4 ESPIA

ESPIA

    Eu mesmo!

  • Usuários
  • 157 posts
  • Sexo:Não informado
  • Localidade:Curitiba/PR
  • Interesses:Processos de Engenharia e Qualidade de Software, mais especificamente Gerência de Projetos, requisitos e regras de Negócios, Técnicas de Análise (AE, OO), Projeto, Codificação (qualquer ferramenta), SGBDR e WEB development.

Posted 24/04/2003, 13:28

Qual é o BD? Dependendo dá pra usar a instrução SQL SELECT MINUS ou SELECT ... INNER JOIN ... pra saber o que sobra e inserir o resultado (recordset resultante) na tabela3. É fácil... Mas digá lá q banco é, senão não dá pra te dar muita dica...

:light:
BB 20 4D 65 75 20 69 6E 74 65 72 65 73 73 65 20 61 71 75 69 20 E9 20 70 61 72 74 69 63 69 70 61 72 2C 20 64 65 20 66 6F 72 6D 61 20 70 6F 73 69 74 69 76 61 20 65 20 70 72 6F 64 75 74 69 76 61 2C 20 64 65 20 74 6F 64 61 73 20 61 73 20 64 69 73 63 75 73 73 F5 65 73 20 72 65 6C 61 63 69 6F 6E 61 64 61 73 20 61 20 48 61 72 64 77 61 72 65 2C 20 53 6F 66 74 77 61 72 65 20 65 20 57 65 62 20 44 65 76 65 6C 6F 70 6D 65 6E 74 2C 20 61 6C E9 6D 20 64 6F 20 70 72 F3 70 72 69 6F 20 72 65 6C 61 63 69 6F 6E 61 6D 65 6E 74 6F 20 65 20 64 65 73 65 6E 76 6F 6C 76 69 6D 65 6E 74 6F 20 68 75 6D 61 6E 6F 2C 20 65 6E 71 75 61 6E 74 6F 20 FA 74 69 6C 20 65 20 61 67 72 61 64 E1 76 65 6C 2E

» Deixe tudo um pouco melhor do que era antes de você chegar!

#5 Stormbringer

Stormbringer

    I'd love to stay with you all

  • Ex-Admins
  • 2927 posts
  • Sexo:Não informado
  • Localidade:Goiânia - GO
  • Interesses:Atualmente: pesquisa e desenvolvimento de web-games

Posted 24/04/2003, 13:34

Qual é o BD? Dependendo dá pra usar a instrução SQL SELECT MINUS ou SELECT ... INNER JOIN ... pra saber o que sobra e inserir o resultado (recordset resultante) na tabela3. É fácil... Mas digá lá q banco é, senão não dá pra te dar muita dica...

:light:

é MySQL

๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑


#6 ESPIA

ESPIA

    Eu mesmo!

  • Usuários
  • 157 posts
  • Sexo:Não informado
  • Localidade:Curitiba/PR
  • Interesses:Processos de Engenharia e Qualidade de Software, mais especificamente Gerência de Projetos, requisitos e regras de Negócios, Técnicas de Análise (AE, OO), Projeto, Codificação (qualquer ferramenta), SGBDR e WEB development.

Posted 24/04/2003, 13:36

Bom, naum tenho ele instalado aki, mas vou fazer um genericão e te mando daki a pouco. Só me dá um tempinho q eu tô no trampo... Falow?
BB 20 4D 65 75 20 69 6E 74 65 72 65 73 73 65 20 61 71 75 69 20 E9 20 70 61 72 74 69 63 69 70 61 72 2C 20 64 65 20 66 6F 72 6D 61 20 70 6F 73 69 74 69 76 61 20 65 20 70 72 6F 64 75 74 69 76 61 2C 20 64 65 20 74 6F 64 61 73 20 61 73 20 64 69 73 63 75 73 73 F5 65 73 20 72 65 6C 61 63 69 6F 6E 61 64 61 73 20 61 20 48 61 72 64 77 61 72 65 2C 20 53 6F 66 74 77 61 72 65 20 65 20 57 65 62 20 44 65 76 65 6C 6F 70 6D 65 6E 74 2C 20 61 6C E9 6D 20 64 6F 20 70 72 F3 70 72 69 6F 20 72 65 6C 61 63 69 6F 6E 61 6D 65 6E 74 6F 20 65 20 64 65 73 65 6E 76 6F 6C 76 69 6D 65 6E 74 6F 20 68 75 6D 61 6E 6F 2C 20 65 6E 71 75 61 6E 74 6F 20 FA 74 69 6C 20 65 20 61 67 72 61 64 E1 76 65 6C 2E

» Deixe tudo um pouco melhor do que era antes de você chegar!

#7 Stormbringer

Stormbringer

    I'd love to stay with you all

  • Ex-Admins
  • 2927 posts
  • Sexo:Não informado
  • Localidade:Goiânia - GO
  • Interesses:Atualmente: pesquisa e desenvolvimento de web-games

Posted 24/04/2003, 13:42

opa mano, agradeço muito se tiver uma solução de facil implementação pra isso...

๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑


#8 ESPIA

ESPIA

    Eu mesmo!

  • Usuários
  • 157 posts
  • Sexo:Não informado
  • Localidade:Curitiba/PR
  • Interesses:Processos de Engenharia e Qualidade de Software, mais especificamente Gerência de Projetos, requisitos e regras de Negócios, Técnicas de Análise (AE, OO), Projeto, Codificação (qualquer ferramenta), SGBDR e WEB development.

Posted 24/04/2003, 16:37

Olha só. É uma "acochambrada" mas funca.

Rode uma instrução SQL tipo assim:

INSERT INTO Tabela3 ( Cod, Tipo )
SELECT Tabela1.Cod, Tabela1.Tipo
FROM Tabela1 LEFT JOIN Tabela2 ON Tabela1.Tipo = Tabela2.Tipo
GROUP BY Tabela1.Cod, Tabela1.Tipo
HAVING (((Count(Tabela2.Tipo))=0));

Quem sabe vc tenha q dar uma acertada no dialeto SQL por diferenças entre este "genérico" feito em ACCESS e o MySQL. Mas acho que não rola erro. Se fosse Oracle, por exemplo, eu usava uma função MINUS, q subtrai o q existe em uma tabela para outra - exatamente o que vc quer. Se vc tiver doc do MySQL vê se não tem algo assim.

Blz.
BB 20 4D 65 75 20 69 6E 74 65 72 65 73 73 65 20 61 71 75 69 20 E9 20 70 61 72 74 69 63 69 70 61 72 2C 20 64 65 20 66 6F 72 6D 61 20 70 6F 73 69 74 69 76 61 20 65 20 70 72 6F 64 75 74 69 76 61 2C 20 64 65 20 74 6F 64 61 73 20 61 73 20 64 69 73 63 75 73 73 F5 65 73 20 72 65 6C 61 63 69 6F 6E 61 64 61 73 20 61 20 48 61 72 64 77 61 72 65 2C 20 53 6F 66 74 77 61 72 65 20 65 20 57 65 62 20 44 65 76 65 6C 6F 70 6D 65 6E 74 2C 20 61 6C E9 6D 20 64 6F 20 70 72 F3 70 72 69 6F 20 72 65 6C 61 63 69 6F 6E 61 6D 65 6E 74 6F 20 65 20 64 65 73 65 6E 76 6F 6C 76 69 6D 65 6E 74 6F 20 68 75 6D 61 6E 6F 2C 20 65 6E 71 75 61 6E 74 6F 20 FA 74 69 6C 20 65 20 61 67 72 61 64 E1 76 65 6C 2E

» Deixe tudo um pouco melhor do que era antes de você chegar!

#9 Stormbringer

Stormbringer

    I'd love to stay with you all

  • Ex-Admins
  • 2927 posts
  • Sexo:Não informado
  • Localidade:Goiânia - GO
  • Interesses:Atualmente: pesquisa e desenvolvimento de web-games

Posted 24/04/2003, 17:12

Salvou minha pele por hj! Vou poder tomar um :coffee: e voltar pra casa cedo.

muito obrigado!!!

๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑





2 user(s) are reading this topic

0 membro(s), 2 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq