Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Annyh

[Resolvido] selecionar duas tabelas para procurar algo

Recommended Posts

tenho duas tabelas distintas que gostaria de buscas nelas através de um form do site...

 

os campos a serem buscados seriam os seguintes:

 

autor = tabela 1

titulo = tabela 1

texto = tabela 1

 

autor = tabela 2

titulo = tabela 2

texto = tabela 2

 

tenho essa sql, mas que retorna dados repetidos, repetiu uma busca 7 vezes, sendo que tenho apenas um registro com a busca que informei...

 

SELECT
	jre_video_aulas.*,
	jre_noticias.*
	FROM
	jre_video_aulas,
	jre_noticias
	WHERE
	jre_video_aulas.autor LIKE ? OR
	jre_video_aulas.titulo LIKE ? OR
	jre_video_aulas.texto LIKE ? OR
	jre_noticias.autor LIKE ? OR
	jre_noticias.titulo LIKE ? OR
	jre_noticias.texto LIKE ?
	ORDER BY
	jre_video_aulas.data_hora DESC,
	jre_noticias.data_hora DESC
	LIMIT 10

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom não é assim que faz não filhota.. tenta buscar no google por inner join

 

no mais fica assim

SELECT * FROM tabela1 INNER JOIN tabela2 ON ligacao1 = ligacao2 WHERE suas condi~ções

 

Jordan, no meu caso não há ligação, quero apenas buscar um valor nas duas tabelas... entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

assim então faz duas consultas... ou eu não to entendendo bem

 

 

assim, o usuário vai digitar no formulário o que ele deseja procurar, ai quero que seja procurado nas duas tabelas do banco de dados, a tabela videos e a tabela noticias, entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Procure por UNION.

 

achei isso no manual do mysql, mas ele retorna apenas um valor de cada ocorrência, tipo tinha várias noticias e video aulas do mesmo autor, mas ele retornou somente uma, é como se ele tivesse agrupado os valores, sinto que estou quase lá...

 

(SELECT autor FROM jre_video_aulas WHERE autor LIKE '%Ju%')
UNION
(SELECT autor FROM jre_noticias WHERE autor LIKE '%a%')

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, você esta usando um filtro com LIKE, este filtro atende aos diversos registros da tabela?

Você pode tentar o UNION ALL.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode fazer isso de uma maneira muito simples , e direta.

 


SELECT * FROM tabela1,tabela2 WHERE autor CONTAIN '$autor' OR
titulo CONTAIN '$titulo' OR
texto CONTAIN '$texto'

 

é íncrivel como as pessoas ignoram a simplicidade.

 

Lembrando que no exemplo acima utilizei variáveis, que virão de um formulário. os valores podem ser passados pelo método POST ou GET. Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, você esta usando um filtro com LIKE, este filtro atende aos diversos registros da tabela?

Você pode tentar o UNION ALL.

 

beleza Prog, depois de muito tentar, consegui, usei o UNION ALL e deu certo, valeu pela dica...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode fazer isso de uma maneira muito simples , e direta.

 


SELECT * FROM tabela1,tabela2 WHERE autor CONTAIN '$autor' OR
titulo CONTAIN '$titulo' OR
texto CONTAIN '$texto'

 

é íncrivel como as pessoas ignoram a simplicidade.

 

Ufa... ainda bem que você trouxe sua solução "totalmente compatível" com ANSI, "rápida", "simples" e "direta".

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.