Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17639
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Como usar o LEFT JOIN ou INNER JOIN MySQL

11-05-2015 19:12

Nesse post vou mostrar um exemplo bem simples de como usar o LEFT JOIN e o INNER JOIN para puxar dados entre duas tabelas.

Vou explicar aqui a diferença básica entre o LEFT JOIN e o INNER JOIN.

Basicamente o LEFT JOIN você deve usar quando você tem referências iguais entre duas tabelas, como no exemplo abaixo.

Eu tenho duas tabelas:

tabela_um
id - nome
1 - joão
2 - maria


tabela_dois
id - sexo
1 - masculino
2 - feminino


Como mostrado eu tenho duas tabelas. As duas tabelas estão relacionadas, ou seja, ambas tabelas tem uma coluna id com valores iguais.

Eu posso por exemplo em uma única consulta obter o seguinte:

1 - pedro - masculino 2 - maria - feminino

Isso é feito da seguinte forma:

SELECT * FROM tabela_um A LEFT JOIN tabela_dois B ON A.id=B.id

O meu echo dentro do while pode fazer referência a coluna das duas tabelas ao mesmo tempo, por exemplo:

echo "$id - $nome - $sexo<br />";

$id e $nome vem da tabela_um
$sexo vem da tabela_dois

Já o INNER JOIN é quase igual ao LEFT JOIN, só que se você usar o INNER JOIN e não tiver dados relacionados entre as duas tabelas, a consulta só vai retornar os dados que tiverem os valores relacionados. Os que não tiverem serão ignorados. Exemplo

tabela_um
id - nome
1 - joão
2 - maria


tabela_dois
id - sexo
1 - masculino
3 - feminino


Note que a coluna id de maria, não tem mais relação com a tabela_dois, então não precisa ser mostrada. Eu faço a seguinte query

SELECT * FROM tabela_um A INNER JOIN tabela_dois B ON A.id=B.id

Essa consulta vai retornar somente quem tem relação nas duas tabelas, no caso o resultado será:

1 - pedro - masculino

Tem uma figura no link abaixo que é dá uma ideia das relações entre as tabelas do banco de dados.
http://www.quora.com/SQL/What-is-the-di ... -full-join
1
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado