Alguém poderia me explicar melhor esse select?
select *,(select count(l2.data_de_lancamento)from livros as l2 where l2.data_de_lancamento = l.data_de_lancamento)from livros as l order by l.data_de_lancamento;
Alguém poderia me explicar melhor esse select?
select *,(select count(l2.data_de_lancamento)from livros as l2 where l2.data_de_lancamento = l.data_de_lancamento)from livros as l order by l.data_de_lancamento;
Olá Ian,
Esse select está retornando todas as colunas de livros e também a quantidade de livros lançados para cada data de lançamento. Parece meio confuso, então vou explicar melhor.
Cada livro da tabela possui uma data de lançamento. Para cada um dessa data, foram também lançados outros livros. Logo, a query que está dentro dos parênteses está contando a quantidade de livros lançados para cada data de lançamento.
Segue o comentário de cada linha da query
SELECT
*, /*RETORNA TODAS AS COLUNAS DA TABELA LIVROS*/
(
SELECT COUNT(l2.data_de_lancamento) /*FAZ A CONTAGEM DOS LIVROS LANÇADOS*/
FROM livros AS l2
WHERE l2.data_de_lancamento = data_de_lancamento /*ESSE WHERE É O QUE VAI LINKAR AS SOMAS DOS LANÇAMENTOS PARA CADA DATA CORRESPONDENTE*/
) /*RETORNA A SOMA DE LIVROS LANÇADOS PARA CADA DATA DE LANÇAMENTO VERIFICADA NA TABELA LIVROS*/
FROM
livros AS l
ORDER BY
l.data_de_lancamento;
Espero ter ajudado. Abs