Tutorial Mysql



Hoje precisei pegar dados de duas tabelas, para utilizar em apenas uma consulta e por algum tempo fiquei em dúvida, sem lembrar como deveria fazer isso. Ao pesquisar no google vi que muitas pessoas támbem tem essa dúvida e a resposta para isso é simples:  utilizar o comando Join mais especificamente um Inner Join. Leia o texto e entenda como funciona este comando que só é mais útil do que simples.




O relacionamento de tabelas é necessário quando temos mais de uma tabela com informações que podem e precisam ser cruzadas, por exemplo: Temos duas tabelas tbl_sede e a tbl_funcionário, cada registro existente na tbl_funcionarios está ligada a um registro na tbl_sede, já que todo funcionário deve pertencer a alguma sede.

O Comando Inner Join é uma forma de unir (join) tabelas, e para isso é preciso que haja uma relação entre as mesmas( no exemplo acima a obrigação de cada funcionário pertencer a pelo menos uma sede), ou seja, um campo de ligação, que é chamado de Chave Estrangeira (Foreign Key), que não precisa ter o mesmo nome nas duas tabelas, mas tem de ser do mesmo tipo.  A chave estrangeira de uma tabela vai ser ligar com a Chave Primária (Primary Key) da outra tabela.

Vamos ver um exemplo ?
Eu tenho 2 tabelas, uma se chama tbl_sede e a outra tbl_funcionario. Tenho o número do identificação de um funcionário, no caso 1, e quero saber qual seu nome e sua sede, como posso resolver esse problema ?



Primeiro vamos criar as tabelas tbl_funcionar e tbl_sede:

CREATE TABLE tbl_funcionarios (
fun_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
fun_sede INT NOT NULL,
fun_nome VARCHAR( 255 ) NOT NULL
)
ENGINE = MYISAM;


CREATE TABLE tbl_sede (
sed_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
sed_codigo INT NOT NULL,
sed_descr VARCHAR( 255 ) NOT NULL
) ENGINE = MYISAM;





Agora vamos inserir alguns dados nessas tabelas:

Insert into tbl_funcionarios values(NULL,1,’Paula’)
Insert into tbl_funcionarios values(NULL,1,’Carlos’)
Insert into tbl_funcionarios values(NULL,2,’André’)
Insert into tbl_funcionarios values(NULL,2,’Cristina’)
Insert into tbl_funcionarios values(NULL,2,’Talita’)


Insert into tbl_sede values(NULL,2,'Capital')
Insert into tbl_sede values(NULL,1,'Interior')





Vamos criar o comando Inner Join para juntar as tabelas e obter dados necessários?

SELECT tbl_funcionarios.fun_nome, tbl_sede.sed_descr
FROM tbl_funcionarios
inner join tbl_sede on tbl_sede.sed_codigo = tbl_funcionarios.fun_sede
WHERE tbl_funcionarios.fun_id=1



Entenda o código:
Queremos os campos fun_nome(nome do funcionário) e sed_descr (descrição da sede) da tbl_funcionarios que se liga a tbl_sede através do campo que representa o código da sede que está presente nas duas tabelas, em uma como chave estrangeira e em outra como chave primária, onde o campo fun_id seja 1. Assim obtemos o nome do funcionário e o nome da sua sede, simples não acham ?

Se tiverem alguma dúvida digam nos comentários podem ter certeza que os ajudarei, pois sei como é difícil ter dúvidas e não saber onde tira-las.



Leo CruzDicasTecnologia
Hoje precisei pegar dados de duas tabelas, para utilizar em apenas uma consulta e por algum tempo fiquei em dúvida, sem lembrar como deveria fazer isso. Ao pesquisar no google vi que muitas pessoas támbem tem essa dúvida e a resposta para isso é simples:  utilizar o comando Join...