Os materiais didáticos aqui disponibilizados estão licenciados através de Creative Commons Atribuição-SemDerivações-SemDerivados CC BY-NC-ND. Você possui a permissão para visualizar e compartilhar, desde que atribua os créditos do autor. Não poderá alterá-los e nem utilizá-los para fins comerciais.
Atribuição-SemDerivações-SemDerivados
CC BY-NC-ND
Cursos / Informática para Internet / Banco de Dados / Aula
Podemos também utilizar o resultado de uma subconsulta no lugar de uma coluna que será retornada na instrução SELECT, conforme é descrito a seguir.
mysql> SELECT tabela1.atributo1,
(SELECT tabela2.atributoX FROM tabela2 WHERE condição), tabela1.atributo2 ...
FROM tabela1;
Observe que os atributos tabela1.atributo1 e tabela1.atributo2 são atributos pertencentes à tabela 1 que se deseja visualizar. Além desses atributos, deseja-se visualizar o resultado da subconsulta que retorna um determinado atributo (tabela2.atributoX) da tabela 2. É importante destacar que mesmo que a tabela 2 possua mais de uma coluna (atributo), somente pode-se retornar uma única coluna. Para um melhor entendimento acerca desse tópico, examine o exemplo a seguir que lista todos os nomes dos produtos e quantidade de itens vendidos.
mysql> SELECT prod_nome,
(SELECT SUM(comp_total) FROM compras WHERE prod_codigo= comp_codproduto) AS vendidos
FROM produtos;
Em termos simples, a consulta feita está exibindo em cada linha o nome de um produto e a quantidade de itens vendidos desse produto. Para ser executada, a consulta interna necessita da informação do atributo prod_codigo, porém, essa informação pertence à tabela produtos, que é acessada a partir da consulta externa. O termo AS é utilizado no SELECT externo para nomear o resultado da subconsulta como sendo vendidos com a finalidade de deixar a consulta mais legível. A função SUM retorna a soma dos itens vendidos de um determinado produto, conforme pode ser verificado na Figura 7. Lembre-se de que a subconsulta nesse caso deve retornar um valor único.Então, cada vez que ela é executada, uma única linha é retornada.
Versão 5.3 - Todos os Direitos reservados