Página 1 de 1
consulta simultânea em duas tabelas iguais
Enviado: 17 Nov 2017 19:21
por cjp
Pessoal, estou testando fazer consulta simultânea em duas tabelas iguais. Pela pesquisa que fiz na internet, seria pra fazer algo assim:
Código: Selecionar todos
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?
consulta simultânea em duas tabelas iguais
Enviado: 18 Nov 2017 10:37
por janio
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
consulta simultânea em duas tabelas iguais
Enviado: 18 Nov 2017 10:46
por cjp
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.
consulta simultânea em duas tabelas iguais
Enviado: 18 Nov 2017 11:16
por JoséQuintas
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.
consulta simultânea em duas tabelas iguais
Enviado: 21 Nov 2017 17:19
por cjp
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:
Código: Selecionar todos
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:
Código: Selecionar todos
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
consulta simultânea em duas tabelas iguais
Enviado: 21 Nov 2017 20:13
por janio
Tente
Código: Selecionar todos
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%'
consulta simultânea em duas tabelas iguais
Enviado: 21 Nov 2017 20:41
por JoséQuintas
Código: Selecionar todos
select cpuf,cpcidade, cpcep from WEBCEP where cpcep='01007-000'
union all
select cpuf,cpcidade,cpcep from WEBCEP where cpcep='03676-080'
consulta simultânea em duas tabelas iguais
Enviado: 22 Nov 2017 02:07
por cjp
Era exatamente isso que eu queria, muito obrigado.