Ir para conteúdo

POWERED BY:

Arquivado

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

Alex Lupóz

Resultado de duas tabelas em uma só query?

Recommended Posts

Olá, pessoal, novamente.

antes de postarem "existe centenas de tópicos parecidos aqui no fórum", digo que tentei de várias formas fazer a junção de duas tabelas, mas não consegui êxito, por ser leigo, então venho lhes pedir novamente, ajuda.

Este é o meu código:

$query = sprintf("SELECT * FROM $tabela ORDER BY count DESC LIMIT 5");

Bem, a minha dúvida é a seguinte:

Como fazer para juntar uma "$tabela2" ai, para pegar os campos?

Tipo: esse sistema, mostra os posts mais populares de acordo com o número que está no campo "count", mas eu tenho outra tabela, onde eu gostaria que fosse mostrado na minha index, os counts "no geral", por exemplo:

TABELA 1: ARTIGOS
TABELA 2: MATÉRIAS

Na minha index, mostra apenas os counts dos artigos da tabela "matéria", ordenados pelo maior count.

Como fazer com que seleciona a TABELA 2 e comparar os counts?

Ficando tipo:

TABELA 1:
artigo 1 (10 counts)

artigo 2 (3 counts)

 

TABELA 2:
artigo 1 (9 counts)
artigo 2 (1 counts)

dai na exibição (que já está feito, só não sei juntar as tabelas), ficaria assim:

artigo 1 (10 counts)
artigo 1 (9 counts)
artigo 2 (3 counts)
artigo 2 (1 counts)

("artigo" seria o título)

Agradeço quem puder me adar uma luz. Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nesse caso como as tabelas não possuem relacionamento, creio que o ideal seja criar uma VIEW, que será um UNION das 2 tabelas, e então na query que irá listar a VIEW, você coloca o ORDER BY

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nesse caso como as tabelas não possuem relacionamento, creio que o ideal seja criar uma VIEW, que será um UNION das 2 tabelas, e então na query que irá listar a VIEW, você coloca o ORDER BY

E como eu poderia fazer isto? O.o

 

Pedrão, tentei procurar algo sobre, mas não compreendi muito bem, pois ainda estou estudando PHP, e sei muito pouco, WBruno. Aliás, eu pego bastante artigo do seu blog :p

 

Se puder me dar um exemplo para ver se compreendo melhor, agradeceria.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E como eu poderia fazer isto? O.o

 

Pedrão, tentei procurar algo sobre, mas não compreendi muito bem, pois ainda estou estudando PHP, e sei muito pouco, WBruno. Aliás, eu pego bastante artigo do seu blog :P

 

Se puder me dar um exemplo para ver se compreendo melhor, agradeceria.

 

Como usar UNION

Compartilhar este post


Link para o post
Compartilhar em outros sites

TABLE artigos

id, nome, conteudo, count

 

TABLE materiais

id, nome, conteudo, count

 

okay ?

 

Agora vamos criar a VIEW:

CREATE VIEW v_artigos_materiais AS SELECT id, nome, conteúdo, count FROM artigos UNION SELECT id, nome, conteudo, count FROM materiais
Ai você fará query na view:

$query = "SELECT id, nome, materiais FROM v_artigos_materiais ORDER BY count DESC LIMIT 5";
Entendeu o espírito ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

TABLE artigos

id, nome, conteudo, count

 

TABLE materiais

id, nome, conteudo, count

 

okay ?

 

Agora vamos criar a VIEW:

CREATE VIEW v_artigos_materiais AS SELECT id, nome, conteúdo, count FROM artigos UNION SELECT id, nome, conteudo, count FROM materiais
Ai você fará query na view:

$query = "SELECT id, nome, materiais FROM v_artigos_materiais ORDER BY count DESC LIMIT 5";
Entendeu o espírito ?

 

Opa, valeu Bruno. O exemplo que passou, até tentei adpatar, mas acabou dando erro em meu sistema, com certeza por ter linhas de códigos diferentes.Mas cnsegui

 

depois de ver uma parte do código que você mandou, eu consegui fazer com UNION (muito f*d@), ficando assim:

$query = sprintf("
SELECT id, diretorio, titulo, count FROM $tab1
UNION SELECT id, diretorio, titulo, count FROM  $tab1
ORDER BY count DESC LIMIT 5");

Obrigado a todos que responderam e a você, Bruno, sempre auxiliando ai. Eu consegui fazer um sistema de postagensque estava parado há algumas semanas apenas depois que vi um artigo seu sobre refresh com Ajax. Continue assim :p

 

Abraço a todos, brothers

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.