Categories: DicasMySQL

Mysql – NATURAL JOIN – Joins mais fáceis

Esta dica é para facilitar algumas consultas no banco de dados. O Mysql tem suporte ao NATURAL Join o que facilita muito as querys.

Vamos supor que temos 2 tabelas relacionadas, clientes e telefones. O cliente tem a seguinte estrutura:

CREATE TABLE `clients` (
  `idClients` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(150) DEFAULT NULL,
  PRIMARY KEY (`idClients`)
)
insert  into `clients`(`name`) values ('Turbosite');

 

Note que no final inserimos um usuário para nosso teste.

A tabela de telefones ficaria desta forma:

CREATE TABLE `phones` (
  `idPhones` int(11) NOT NULL AUTO_INCREMENT,
  `number` char(20) NOT NULL,
  `idClients` int(11) NOT NULL,
  PRIMARY KEY (`idPhones`,`idClients`),
  KEY `idClients` (`idClients`),
  CONSTRAINT `phones_ibfk_1` FOREIGN KEY (`idClients`) REFERENCES `clients` (`idClients`)
)
insert  into `phones`(`number`,`idClients`) values ('(31) 4003-2322',1);
insert  into `phones`(`number`,`idClients`) values ('(31) 3261-2168',1);

 

Sem utilizar o NATURAL Join, a consulta para pegar os telefones de um cliente seria da seguinte forma:

SELECT C.`name`,P.`number` FROM clients C
INNER JOIN phones P
ON C.`idClients` = P.`idClients`
WHERE C.`idClients` = 1

 

Resultado seria:

name number
Turbosite (31) 4003-2322
Turbosite (31) 3261-2168

 

Agora com o Natural JOIN, a consulta seria:

SELECT * FROM clients
NATURAL JOIN phones
WHERE idClients = 1

O resultado da pesquisa:

idClients name idPhones number
1 Turbosite 5 (31) 4003-2322
1 Turbosite 6 (31) 3261-2168

 

O Natural JOIN é inteligente o suficiente para não acusar erro por ambiguidade de coluna, como uma faz referência a outra, ele não lista em duplicidade as colunas de referência.
A consulta fica mais limpa, mais fácil de entender e de dar manutenção, caso esta tabela fizesse referência a uma 3ª tabela, era só adicionar uma linha ficando desta forma:

SELECT * FROM clients
NATURAL JOIN phones
NATURAL JOIN tabela3
WHERE idClients = 1

 

Vamos deixar aqui um link com uma apresentação de JOINS do MYSQL. É interessante ver e aprender para tomar a melhor decisão no desenvolvimento de seus projetos.

http://w3resource.com/gallery/mysql-joins-slides-presentation

turboajuda

Recent Posts

Olá, mundo!

Boas-vindas ao WordPress. Esse é o seu primeiro post. Edite-o ou exclua-o, e então comece…

1 semana ago

Google Maps – Ferramentas Do Google Para Melhorar As Vendas Do Seu Site.

Forneça Serviços Melhores Com Informações de Localização Precisas Ofereça aos usuários as mesmas experiências de…

5 anos ago

Google Ads – Ferramentas Do Google Para Melhorar As Vendas Do Seu Site.

Sabemos que aumentar as vendas é a chave para o sucesso de qualquer negócio. Mas…

6 anos ago

Google Search Console – Ferramentas Do Google Para Melhorar As Vendas Do Seu Site.

Sabemos que aumentar as vendas é a chave para o sucesso de qualquer negócio. Mas…

6 anos ago

Como Gerar QrCodes Para Seus Clientes Acessarem Seu Site, Loja ou WhatsApp

QRCode significa Reposta Rápida e surgiu como uma evolução dos antigos códigos de barras. Hoje…

6 anos ago

5 Maneiras de aumentar as suas vendas online

Se você administra um negócio pessoal, familiar ou trabalha para uma grande empresa, aumentar as…

8 anos ago