Clipper On Line • Ver Tópico - consulta simultânea em duas tabelas iguais

consulta simultânea em duas tabelas iguais

Discussão sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

 

consulta simultânea em duas tabelas iguais

Mensagempor cjp » 17 Nov 2017 18:21

Pessoal, estou testando fazer consulta simultânea em duas tabelas iguais. Pela pesquisa que fiz na internet, seria pra fazer algo assim:

SELECT tarefas.prioridade,tarefas.nrtarefa,tarefas.assunto,tarefas.tarefa,procsol.prioridade,procsol.nrtarefa,procsol.assunto,procsol.tarefa FROM tarefas,procsol WHERE tarefas.assunto like '%trem%' OR procsol.assunto like '%trem%'


Entretanto, essa consultar está retornando milhares de registros repetidos, demorando demais.

Além disso, ela retorna os campos duplicados.

Eu queria que retornasse só um resultado, com os registros de ambas as tabelas, sem duplicações de campos nem de registros, como se a consulta fosse em uma só tabela.

Ressalto que as duas tabelas são exatamente iguais, com exatamente os mesmos campos, só o conteúdo dos registros é diferente.

Alguém poderia me ajudar?
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

consulta simultânea em duas tabelas iguais

Mensagempor janio » 18 Nov 2017 09:37

Nao entendi o que vc quer.

Se vc tem duas tabelas e vc esta fazendo uma consulta nas duas, virá os dados das duas mesmo!

A não ser que vc tenha um CAMPO UNICO nas duas que faça a ligação entre elas, aí vc relaciona uma a outra
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

consulta simultânea em duas tabelas iguais

Mensagempor cjp » 18 Nov 2017 09:46

Eu quero os dados das duas mesmo. Mas juntos.

Não tem dados repetidos nas duas tabelas, os dados são diferentes.

Da forma como está o select, ele abre duas vezes cada Campo, eu queria que abrisse uma vez só.

Além disso, não sei porque, cada registro está repetido varias vezes.
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

consulta simultânea em duas tabelas iguais

Mensagempor JoséQuintas » 18 Nov 2017 10:16

Se vém repetido é porque ainda tem repetido, e isso também torna a consulta mais lenta.
Também a consulta, sem nenhum campo-chave no where (campo que não conste em índice) também fica lenta, porque o MySQL vai acabar tendo que criar um índice temporário para a consulta.

Se não quer dados repetidos, use SELECT DISTINCT

Isso apenas vai eliminar os repetidos na consulta, mas não vai resolver o problema de repetidos na(s) tabela(s).

Importante:
Não está fazendo consulta em duas tabelas.
Está fazendo consulta em UMA TABELA relacionada com a outra, deixando por conta do MySql decidir como relacionar as duas.

Importante 2:
O problema de duplicação não vai se resolver sozinho.
Precisa até fazer a limpeza pra saber se tem outras partes do aplicativo duplicando informações.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18009
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

consulta simultânea em duas tabelas iguais

Mensagempor cjp » 21 Nov 2017 16:19

Não sei se vc está falando daquela minha outra tabela que te falei particularmente que tinha registros duplicados, mas aqui não é o caso. Estas duas tabelas não têm registros duplicados em hipótese alguma.

As tabelas têm índice.

Não está fazendo consulta em duas tabelas.


Se não é assim que faço a consulta nas duas tabelas, como seria, por favor?

Eu queria algo simples: no exemplo inicial, queria todos os registros que tiverem a palavra "trem" no campo assunto das duas tabelas, formando um único resultado conjunto para as duas tabelas. Então, o resultado poderia ser algo assim:

prioridade      nrtarefa      assunto       tarefa       
9               X123          trem de pouso   xxxxxxxxxxxxxxxxxx
8               Y456          viagem de trem   yyyyyyyyyyyyyyyyyy


Sendo que o primeiro registro está em uma das tabelas e o segundo em outra.

Entretanto, ele está retornando assim:

prioridade    nrtarefa      assunto        tarefa         prioridade        nrtarefa       assunto        tarefa
9             X123        trem de pouso   xxxxxxxxxxx      9        X123         trem de pouso     xxxxxxxxxxxx
8             Y456        viagem de trem   yyyyyyyyyyy      8         Y456        viagem de trem     yyyyyyyyyyyy
9             X123        trem de pouso   xxxxxxxxxxx      9        X123         trem de pouso     xxxxxxxxxxxx
8             Y456        viagem de trem   yyyyyyyyyyy      8         Y456        viagem de trem     yyyyyyyyyyyy
9             X123        trem de pouso   xxxxxxxxxxx      9        X123         trem de pouso     xxxxxxxxxxxx
8             Y456        viagem de trem   yyyyyyyyyyy      8         Y456        viagem de trem     yyyyyyyyyyyy
9             X123        trem de pouso   xxxxxxxxxxx      9        X123         trem de pouso     xxxxxxxxxxxx
8             Y456        viagem de trem   yyyyyyyyyyy      8         Y456        viagem de trem     yyyyyyyyyyyy
9             X123        trem de pouso   xxxxxxxxxxx      9        X123         trem de pouso     xxxxxxxxxxxx
8             Y456        viagem de trem   yyyyyyyyyyy      8         Y456        viagem de trem     yyyyyyyyyyyy
9             X123        trem de pouso   xxxxxxxxxxx      9        X123         trem de pouso     xxxxxxxxxxxx
8             Y456        viagem de trem   yyyyyyyyyyy      8         Y456        viagem de trem     yyyyyyyyyyyy
9             X123        trem de pouso   xxxxxxxxxxx      9        X123         trem de pouso     xxxxxxxxxxxx
8             Y456        viagem de trem   yyyyyyyyyyy      8         Y456        viagem de trem     yyyyyyyyyyyy
9             X123        trem de pouso   xxxxxxxxxxx      9        X123         trem de pouso     xxxxxxxxxxxx
8             Y456        viagem de trem   yyyyyyyyyyy      8         Y456        viagem de trem     yyyyyyyyyyyy
9             X123        trem de pouso   xxxxxxxxxxx      9        X123         trem de pouso     xxxxxxxxxxxx
8             Y456        viagem de trem   yyyyyyyyyyy      8         Y456        viagem de trem     yyyyyyyyyyyy
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

consulta simultânea em duas tabelas iguais

Mensagempor janio » 21 Nov 2017 19:13

Tente

SELECT
   tarefas.prioridade as Prioridade
   tarefas.nrtarefa   as NumeroTarefa
   tarefas.assunto    as Assunto
   tarefas.tarefa     as Tarefa
FROM
   tarefas
WHERE
   tarefas.assunto like '%trem%'
UNION ALL
SELECT
   procsol.prioridade  as Prioridade
   procsol.nrtarefa    as NumeroTarefa
   procsol.assunto     as Assunto
   procsol.tarefa      as Tarefa
FROM
   procsol
WHERE
   procsol.assunto like '%trem%'
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar de usuário

janio
Colaborador

Colaborador
 
Mensagens: 1835
Data de registro: 06 Jul 2004 07:43
Cidade/Estado: UBAJARA - CE
Curtiu: 8 vezes
Mens.Curtidas: 68 vezes

consulta simultânea em duas tabelas iguais

Mensagempor JoséQuintas » 21 Nov 2017 19:41

select cpuf,cpcidade, cpcep from WEBCEP where cpcep='01007-000'
union all
select cpuf,cpcidade,cpcep from WEBCEP where cpcep='03676-080'


sqlcep.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18009
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

consulta simultânea em duas tabelas iguais

Mensagempor cjp » 22 Nov 2017 01:07

Era exatamente isso que eu queria, muito obrigado.
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes




Retornar para Banco de Dados

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 10 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro