Por Joel Spolsky
Traduzido por Rosana de Oliveira
Vale a pena conferir.
Projeto de Interface com Usuário para Programadores
Uma linguagem robusta com uma interface agradável e intuitiva rompendo as barreiras entre plataformas sem precisar de maquina virtual. Aplicações desktop, consoles, serviços e event driven em código nativo para Windows, MAC e Linux.
Aqui está uma coisa que me passou despercebido por um longo tempo.
Em uma consulta aonde eu preciso consultar 2 valores diferentes em uma mesma tabela, sempre recorria a uma sub consulta (SELECT dentro de SELECT). Até que, acidentalmente, descobri que era muito mais simples, e estava sempre ali na minha cara.
Para ilustrar a idéia vamos montar uma situação fictícia:
Em uma empresa altamente setorizada você tem um diretor e um vice diretor para cada setor, entre tanto, ambos são funcionários e estão cadastrados na mesma tabela Pessoas. E uma tabela de setores só contem o ID de cada um e é necessário exibir o nome dos 2 indivíduos em uma lista.
Ex. com sub consulta.
SELECT un.id,
f1.nome AS diretor,
(SELECT nome FROM pessoas WHERE id = un.pessoa) AS vice
FROM unidades AS un
LEFT JOIN pessoas AS f1 ON f1.id = un.pessoa
SELECT un.id,
f1.nome diretor,
f2.nome vice
FROM unidades AS un
LEFT JOIN pessoas f1 ON f1.id = un.pessoa
LEFT JOIN pessoas f2 ON f2.id = un.diretor