Agora vou falar sobre o Outer Join, que não é muito diferente do Inner, aliás, digo que ele o complementa. Como vimos, o Inner faz o cruzamento dos dados de várias tabelas, mas ele só exibe resultados que possuam valor correspondente em todas elas.

Essa á uma daquelas situações mais fáceis de demonstrar do que explicar. Vamos imaginar que nossa pequena loja que revende carros tenha recebido alguns modelos, portanto já os tenha cadastrado na tabela "carro", mas ainda não tenha tido tempo de calcular seu preço de venda, portanto eles não possuem cadastro na tabela "preco".

Foram recebidos os carros cujos dados foram inseridos na tabela "carro" da seguinte forma:

INSERT INTO carro VALUES ("Grand Cherokee SRT8 6.1 V8 16V 432cv", "Branca", 4, "Gasolina", "Jeep");

INSERT INTO carro VALUES ("ASX 2.0 16V 4x4 160cv Aut.", "Branca", 4, "Gasolina", "Mitsubishi");

Muito bem, os dois novos carros adicionados possuem a "Gasolina" cadastrada como combustível. Vamos agora tentar repetir o comando que executamos no tópico anterior, para vermos todos os preços dos carros com esse tipo de combustível:

SELECT carro.modelo AS Modelo, carro.combustivel AS ‘Combustível’, preco.valor AS ‘Preço’ FROM carro, preco WHERE carro.modelo = preco.modelo AND carro.combustivel like ‘Gasolina’;

Outer Join MySQL

Vejam que o retorno não incluiu os novos carros cadastrados no sistema, pois eles estão presentes somente na tabela "carro" e não na tabela "preco".

O OUTER JOIN serve para forçar a exibição de todos os itens cadastrados, mesmo que não exista a correspondência em todas as tabelas.

Existem dois tipos de OUTER JOIN, que são o LEFT JOIN e o RIGHT JOIN. Vou demonstrar suas diferenças. Vamos começar com um exemplo que utiliza o LEFT JOIN.

SELECT carro.modelo AS Modelo, carro.combustivel AS 'Combustível', preco.valor AS 'Preço' FROM carro LEFT JOIN preco ON carro.modelo = preco.modelo;

Vejam o retorno:

Outer Join MySQL

Mesmo com dados não cadastrados na tabela "preco", os dados são exibidos e os carros ASX e Grand Cherokee aparecem na relação.

Ou seja, conforme citei no início do tópico, o OUTER JOIN permite exibir dados mesmo que não existam correspondentes em todas as tabelas. Agora vamos entender as diferenças entre o LEFT JOIN e o RIGHT JOIN.

No comando acima usamos o LEFT JOIN e os dados exibidos estavam de acordo com o que queríamos, que era exibir todos os carros cadastrados, mesmo que não tivessem preço correspondente.

Vamos executar o mesmo comando, mas trocando o LEFT pelo RIGHT.

SELECT carro.modelo AS Modelo, carro.combustivel AS 'Combustível', preco.valor AS 'Preço' FROM carro RIGHT JOIN preco ON carro.modelo = preco.modelo;

Outer Join MySQL

Vejam que agora os dados nulos foram omitidos, deixando nosso resultado semelhante a um INNER JOIN.

O comando LEFT JOIN estava dizendo ao SGBD o seguinte:

Exiba todos os resultados da tabela da esquerda e os que possuírem correspondentes à direita.

Outer Join MySQL

Já o comando RIGHT JOIN estava dizendo para exibir todos os resultados da tabela da direita e os que possuírem correspondentes na tabela da esquerda. Como na tabela da direita, que era a tabela "preco", tínhamos apenas os 6 carros cadastrados com preço, os veículos ASX e Grand Cherokee foram omitidos. Você pode testar utilizando o RIGHT JOIN e invertendo as tabelas "preco" e "carro", fazendo com que a tabela "carro" passe a ficar do lado direito. Isso exibiria todos os resultados, inclusive dos carros não cadastrados na tabela preco. Vamos testar!

SELECT carro.modelo AS Modelo, carro.combustivel AS 'Combustível', preco.valor AS 'Preço' FROM preco RIGHT JOIN carro ON carro.modelo = preco.modelo;

Vejamos o retorno dessa consulta:

Outer Join MySQL

Vejam que novamente os resultados foram exibidos incluindo os carros que não possuem preco cadastrado. Joins são simples!

Com isso encerramos a parte do OUTER JOIN.


HARDWARE

Entendendo o seu computador

O que há dentro do meu computador?

Existem alguns componentes fundamentais presentes dentro do seu computador e é muito importante que você conheça um pouco sobre eles, seja para argumentar com algum vendedor durante a compra de um novo PC ou para identificar alguma atitude desleal de algum técnico que esteja te passando um orçamento para reparo. Na seção Raio-X aqui do Contém Bits você pode conhecer e entender mais detalhadamente sobre cada componente, ou também pode clicar abaixo no componente que deseja, para conhecê-lo melhor.

  • Gabinetes

  • Placas-Mãe

  • Processadores

  • Memória

  • Fontes

  • Drives Ópticos

  • Discos Rígidos

  • SSD

  • Placas de Som

  • Placas de Vídeo

Você Sabia?

Excesso de barulho dentro do seu gabinete, principalmente logo que você o liga, pode ser sintoma de problemas nas ventoinhas, que podem precisar ser limpas ou trocadas. Entre em contato com um técnico de sua confiança e verifique isso o quanto antes.


Considerando todas as adaptações de jogos de videogame para o cinema, a mais bem sucedida foi Lara Croft: Tomb Raider, lançado em 2001 e que faturou 274 milhões de dólares. Ele foi dirigido por Simon West e estrelado pela bela Angelina Jolie.


O ábaco é o dispositivo de cálculo mais antigo construído e conhecido pelo homem. Suas formas mais primitivas datam de 400 a.C. e eles foram encontrados na China e na Babilônia. Para saber mais sobre a história dos computadores, clique aqui.


A empresa Universal City Studios, detentora dos direitos autorais do King Kong, processou a Nintendo logo após o lançamento de Donkey Kong, pois segundo ela, o game violava os seus direitos. Ela venceu o processo e recebeu da Nintendo uma indenização de quase 2 milhões de dólares.


Street Fighter 2, lançado para o Super Nintendo no início dos anos 90, foi o principal responsável pelo aumento nas vendas deste console. Graças ao sucesso do título nos Arcades e à perfeita adaptação ao console, muitos consumidores adquiriram o SNES para jogarem o título em casa. Saiba mais.


As primeiras máquinas de fliperama do mundo a utilizarem moedas, chamadas de Galaxy Game, custavam mais de 20 mil dólares para serem produzidas. Saiba mais sobre elas aqui.


A partida mais longa do clássico Space Invaders durou incríveis 38 horas e 32 minutos e esta façanha foi conseguida por um jogador de apenas 12 anos! O jogo, claro, podia ser pausado para alimentação e descanso, mas ainda assim o recorde, estabelecido no dia 02/09/1980, ainda não foi quebrado. Saiba mais.