Como usar inner join mysql

inner join mysql

Usar inner join em suas consultas mysql é de extrema importância, no processo de otimização de uma página, seja ela PHP ou o que for.

É bastante comum programadores sem muita experiência fazerem várias consultas ao banco de dados para por exemplo pegar o resultado de 2 tabelas.

Veja um exemplo:

Temos 2 tabelas. Uma de nome categorias que contém as seguintes colunas: id | nome. Temos registrado nessa tabela a categoria “Tutoriais PHP”, e outras categorias também. Suponhamos que a categoria Tutoriais PHP tem id 23

Temos também a tabela artigos, onde temos registrados diversos artigos, entre eles, vários artigos pertencentes a categoria Tutoriais PHP. As colunas da tabela artigos são: id | cat | titulo | conteudo

Temos então o seguinte registro:

18 | 23 | Formulario de e-mail em ASP | conteudo do artigo

É então passada a seguinte URL www.site.com/tutoriais.php?cat=Tutoriais PHP onde deverá listar todos os artigos da categoria Tutoriais PHP

Um programador php muito inexperiente, faria algo como abaixo.

$check_cat2 = “SELECT id FROM categorias WHERE nome=’$nomecategoria’”;
$check_cat2 = mysql_query($check_cat2);
while ($row_tag=mysql_fetch_array($check_cat2)){
$id_categoria=$row_tag['id'];

$cadas = mysql_query(“SELECT * FROM artigos WHERE cat=’$id_categoria’”);
$row=mysql_fetch_array($cadas);

$titulo_artigo$row['titulo'];
$conteudo_artigo$row['conteudo'];

//aqui toda a parte reponsavel por exibir o conteudo na pagina

}

No exemplo acima é feito o seguinte. Na primeira consulta traduzindo: Seleciona o id da categoria onde categoria é igual a variavel $nomecategoria. Em $nomecategoria por exemplo, podemos temos “Tutoriais PHP”. Ou seja. Estamos fazendo uma consulta para pegar a id da categoria “Tutoriais PHP

Então agora que pegamos o id da categorias Tutoriais PHP, fazemos outra para pegar os artigos pertencentes a esta categoria.

Parece tudo bonitinho. Não é?

Não. Realmente não está nada legal o código. Se for um banco de dados com milhares de registros, a perda de desempenho será grande.

Uma solução muito mais eficiente seria ao invés de fazer 2 consultas, fazer apenas uma, usando o INNER JOIN. Com inner join pode-se pegar dados de várias tabelas ao mesmo tempo, aumentando assim o desempenho das suas consultas.

Não vamos tratar detalhes deste assunto. Você pode ver claramente como utilizar o inner join no mysql, neste link: http://brasiltutoriais.com.br/relacionamento-de-tabelas-no-mysql/ – Eu também não sabia como utlizar. Vale muito a pena ler.

Leia também:

Como instalar PHP, MySQL e Imagick no Windows 7
  • Como usar wifi de graça
  • Simulador de Cores Dacar
  • Como criar um grupo de discussão
  • Como usar um gps
    Tags: , ,

    Deixar um Comentário

    Enviar Comentário

    © 2011 Assuntos Gerais. Todos os direitos reservados.