Ir para conteúdo

Arquivado

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

Andre Summers

Select em duas tabelas

Recommended Posts

Como se faz um Select que consulte dados em duas tabelas MYSQL distintas?

:blink:

Compartilhar este post


Link para o post
Compartilhar em outros sites

SELECT tabela.campo,tabela2.campo FROM tabela, tabela2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Movido: PHP=>MySQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tenho o seguinte Select

 

SELECT * FROM arquivos WHERE filiacoes LIKE '%".$busca."%' ORDER BY nome

Só que agora se faz necessário puxar de duas tabelas...

 

Ficaria assim?

 

SELECT * FROM arquivos,arquivosII WHERE filiacoes LIKE '%".$busca."%' ORDER BY nome

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso mesmo, mas se tiver nas duas tabelas por ex p campo filiacoes você tem que colocar o nome da tabela que você quer ou seja:

 

arquivos.filiacoes

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ficaria assim?

 

SELECT * FROM arquivos.filiacoes,arquivosII.filiacoes WHERE filiacoes LIKE '%".$busca."%' ORDER BY nome

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não estou conseguindo fazer de jeito nenhum!!! Por favor me ajudem!

 

$sql = "SELECT tabela1.nome, tabela1.filiacoes, tabela2.nome, tabela2.filiacoes FROM tabela1, tabela2 WHERE filiacoes LIKE '%".$busca."%' ORDER BY nome LIMIT $inicial, $numreg";

:blink:

Compartilhar este post


Link para o post
Compartilhar em outros sites

$sql = "SELECT tabela1.nome, tabela1.filiacoes, tabela2.nome, tabela2.filiacoes FROM tabela1, tabela2 WHERE filiacoes LIKE %$busca% ORDER BY nome LIMIT $inicial, $numreg";

Compartilhar este post


Link para o post
Compartilhar em outros sites

agora eu tentei assim mas continua não dando certo.

 

$sql_conta = mysql_query(" SELECT * FROM tabela1 FULL JOIN tabela2 ON tabela1.filiacoes = tabela2.filiacoes WHERE filiacoes LIKE '%".$busca."%'");

:blink:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deu erro. Ele ta pegando só da segunda tabela e repetindo cada item 5 vezes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

A outra tabela tem dados que possuem alguma ligação com a outra tabela ? Se não há, então você não precisa de um JOIN. O que pode lhe restar, se fazer sentido, é um UNION.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que to tentando fazer eh o seguinte.

 

a tabela 1 tem as filiações de um determinado grupo.

a tabela 2 tem as filiações de outro grupo.

 

Eu queria fazer um SELECT que pegasse tipo todos os membros do grupo da tabela 1 com a filiação X e todos os membros do grupo da tabela 2 com filiação X.

 

E em seguida exibi-los na tela.

 

Mas sempre que tento fazer ou só pega de uma tabela ou dá erro no código mysql.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu já peguei assim.

 

Tipo não teria como fazer um select em uma tabela, guardar numa variavel. Fazer select na outra tabela e guardar numa variavel. depois juntar as duas variaveis numa só?

 

Ou dá pra fazer o SELECT nos dois como eu falei anteriormente?

Compartilhar este post


Link para o post
Compartilhar em outros sites

As duas tabelas possuem os mesmos campos, e não possuem ligação alguma, então você provavelmente poderá fazer um UNION, como o exemplo abaixo:

 

SELECT ... FROM tabela WHERE blablabla = 1
UNION
SELECT ... FROM outra_tabela WHERE blablabla = 1

A tabela1 tem um identificador presente na tabela2 e você quer os dados das duas, seria então algo como:

 

SELECT tb1.*, tb2.* FROM tabela1 AS tb1 INNER JOIN tabela2 AS tb2

Etc, ... fica difícil sem saber do que se trata, e sem saber a estrutura das tabelas. :-)

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que o UNION eh a melhor opção pra mim...

 

$sql_conta = mysql_query("(SELECT * FROM tabela1 WHERE filiacoes LIKE '%".$busca."%') UNION (SELECT * FROM tabela2 WHERE filiacoes LIKE '%".$busca."%') ORDER BY nome");

Fiz desse jeito e funcionou! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

Pelo menos aparentemente... vou fazer ais testes.

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.