Pergunta do tipo Noob:
Digamos que eu tenha duas mesas, doces e cores. A tabela de cores contém apenas pares código/valor como 01 amarelo, 02 azuis, 03 verdes, etc. e é referenciada na tabela de doces por código.
Como consulto a tabela de doces para todos os doces azuis sem uma junção explícita? Há dois anos venho escrevendo essas consultas com joins, como:
SELECT * FROM doces a JOIN cores o ON(a.color_code = o.color_code)
WHERE o.color_value = 'blue';
Sempre tenho certeza de que estou trazendo uma arma para uma luta de facas, mas minhas pesquisas no Google foram infrutíferas.
Obrigado.
"Tenho certeza de que estou trazendo uma arma para uma luta de facas, mas minhas pesquisas no Google foram infrutíferas." O que te faz pensar isso? RDBMSs são construídos para 'juntar'
Se seu objetivo é tornar seu SQL mais legível, você pode preferir a sintaxe ' using ':
como alternativa, visto que você está codificando 'azul' em sua consulta, considere codificar o código:
mas isso diminuirá a legibilidade, a menos que em seu cenário do mundo real os códigos sejam descritivos (por exemplo, 'BLU' para azul)
Você pode escrevê-lo como:
mas não deve haver nenhuma diferença. Na verdade, a abordagem de junção é um pouco mais robusta.
Além do mais - considere se livrar da tabela de cores e usar apenas color_values em vez de códigos. Na verdade é mais eficiente.