Você está na página 1de 2

INNER JOIN – 

SQL
Mudando um pouco de ares, irei falar de SQL (Structured Query
Language) tem várias funções que vão da mais básica (INSERT,
SELECT, …) até avançada (Stored de procedure), nesse post irei
falar de um em que se ouve muito falar, apresento­lhe INNER
JOIN. Vou considerar que você tenha alguma noção de SQL.

INNER JOIN

Em muitos casos, você poderá precisar apresentar um resultado o
qual não está em apenas uma tabela, então você utiliza o INNER
JOIN para fazer esse relacionamento das tabelas, fazendo da
seguinte forma, como você sabe, ou deveria saber, quando duas
tabelas estão interligadas, de alguma forma, precisa­se de um
campo comum entre ambas (chave estrangeira).

Por exemplo:

Tenho uma escola com várias unidades e criei uma secretaria
virtual. Nessa secretaria virtual, tenho os alunos cadastrados,
porém eu preciso saber qual é a unidade em que esse aluno
estuda. Possuímos aqui pelo menos duas
tabelas, Aluno e Unidade, onde o relacionamento é um­para­
muitos, porque um aluno só pode estar matriculado
em uma unidade, porém uma unidade possui vários alunos. Eles se
relacionam da seguinte forma, a tabela aluno tem um campo que
se relaciona diretamente com o campo do código da unidade na
tabela unidade, não sendo obrigatório os dois campos terem o
mesmo nome, sendo apenas obrigatório os dois terem o mesmo
tipo, se você não conhece SQL pode parecer complicado, mas
posso assegurar­lhe que não é.

É nesse caso, em que o INNER JOIN vai ser usado, Veja:

$SQL = "SELECT Aluno.nome, Unidade.unidade";
Seleciona o campo nome da tabela aluno e campo unidade da
tabela unidade
$SQL .= " FROM Aluno";
A origem é a tabela Aluno. Isso significa que a tabela Aluno é o
lado UM de um relacionamento, e com isso, A pesquisa é feita mais
rápida;Você poderia colocar a tabela Unidade como origem.

$SQL .= " INNER JOIN Unidade";
A tabela Aluno será ligada a tabela Unidade.

$SQL .= " ON Aluno.cod_unidade =
Unidade.cod_unidade";
Faz­se aqui o relacionamento das tabelas.

$SQL .= " ORDER BY Aluno.Nome";
Coloquei que a pesquisa vai ser exibido na ordem alfabética dos
nomes dos alunos.

Ps.: Fiz essa pesquisa com o php, por isso está lá um .=, pois isso
no php significa que estou concatenando a string SQL.

*Foi um exemplo simples, claro que nesse exemplo precisaria de
mais tabelas.

Junto com o INNER JOIN, existem ainda o LEFT JOIN e o RIGHT
JOIN, que funcionam de maneira semelhante. O INNER JOIN, faz o
relacionamento entre duas tabelas e depois exibe o que está nas
duas tabelas do relacionamento indicado, já o LEFT JOIN faz a
mesma coisa, porém retorna os dados de acordo com a tabela da
esquerda (a primeira tabela que foi declarada), independente se no
relacionamento com a tabela da direita não possuir o valor do
campo de relacionamento e o RIGHT JOIN, dou­lhe uma bala
juquinha se você acertar…

Exatamente o que você pensou, faz o mesmo que o LEFT JOIN,
porém retorna os dados de acordo com a tabela da direita (a
segunda tabela que foi declarada), independente se no
relacionamento com a tabela da esquerda não possuir o valor do
campo de relacionamento.
Com isso despeço­me, até a próxima

Você também pode gostar