Subqueries são consultas aninhadas dentro de outra consulta. Subqueries permitem separar cada parte da instrução e fornecer uma alternativa mais legível para operações que exijam complexo junta e sindicatos sem subconsultas realizando. Subconsultas MySQL podem retornar um único valor , uma carreira, única coluna ou uma tabela. A Syntax
A sintaxe básica para uma subconsulta é esta:
SELECT * FROM tabela WHERE columna = (SELECT ColumnB DE tabela2 );
Subqueries deve ser um SELECT, INSERT, UPDATE, DELETE SET ou DO declaração, e você não pode modificar uma tabela e selecione -o na subconsulta.
Subqueries são normalmente encontrados no lado direito da cláusula WHERE, que pode conter qualquer dos seguintes operadores de comparação e lógicas : = ( igual ) , < > ( mas não igual) , < = ( menor ou igual ) , > = ( maior ou igual ) , < ( inferior ) , > , ( maior que) , eNTRE ( valor situa-se entre dois valores ) NOT ( NÃO lógico ) , AND ( E lógico ) , OR ( OU lógico ) . Eles também podem conter o DISTINCT, GROUP BY , ORDER BY, e palavras-chave limite. Eles podem ainda ser utilizados em conjunto com instruções JOIN . Para além das restrições acima , há muito poucas limitações colocadas sobre subconsultas dentro MySQL .
Não há nem mesmo uma restrição sobre o número de subconsultas , que pode ser encontrado em um comunicado. Contanto que você coloque cada subconsulta entre parênteses , você pode ter quantas consultas aninhadas que você precisa para encontrar seus dados. . Mais informações sobre subconsultas podem ser encontrados no manual de referência MySQL (consulte Recursos ),
Exemplo
Suponha que você tenha duas tabelas : a primeira contém o primeiro nome, último Nome, Endereço e CEP dos membros da sua lista de endereços , o segundo contém Cidade, Estado e CEP . Se você quiser encontrar os nomes dos membros que vivem na Geórgia, você pode usar várias instruções select . A primeira afirmação seria encontrar os códigos postais para a Geórgia :
Selecione zip DE ONDE CEP estado = " GEORGIA ";
Então você teria que emitir uma instrução SELECT para cada código postal retornado:
SELECIONE fname , lname endereço DE ONDE zip = "[ CEP ]";
Esse método é muito demorado e propenso a erros. É fácil perder um código postal , especialmente se houver um monte deles
Uma maneira mais fácil de completar a sua tarefa seria a de emitir a primeira declaração como uma subconsulta para a segunda instrução : .
SELECT fname , lname endereço DE ONDE zip = (SELECT zip dE ONDE CEP estado = " GEORGIA "); .
Esta consulta retornará todos os membros da sua lista de endereços que vivem na Geórgia com uma consulta < br >