3
respostas

FILTRO PESQUISAR SQL

Estou com uma dúvida, quando assisti a aula verifiquei que no filtro de contagem das hospedagens aparece o valor de total = 3 para Thiago Porto, mas quando vou na tabela proprietarios e filtro com o nome dele aparece só uma hospedagem ligada a ele.

O que pode ser?
Não compreendi a consulta?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
3 respostas

Olá Thiago, tudo bem?

Para que eu possa te ajudar a entender melhor o que está acontecendo, você poderia compartilhar os códigos SQL que você executou? Assim, consigo analisar os resultados e identificar a causa desse comportamento.

Fico no aguardo!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!

Segue abaixo o código que foi usado.

select p.nome as nome_proprietario, count(h.hospedagem_id)
as total_hospedagens_ativas
from proprietarios p 
join hospedagens h on p.proprietario_id = h.proprietario_id
WHERE h.ativo = 1
GROUP BY p.nome
order by total_hospedagens_ativas desc
LIMIT 10;

Nesse caso o que eu não compreendi é a seguinte situação, quando é usado o filtro manual direto na tablea contam que 'Thiago Porto' tem três hospedagens, porém essas hospedagens estão em CPF diferentes e tem pessoas que não mostram a quantidade correta de propriedade, pois na pesquisa apontam valores inferiores do pesquisado pelo nome da pessoa ou ID...

Oi!

Fiz alguns testes e notei que no banco há mais de um registro com o nome “Thiago Porto” (mas com proprietario_id diferentes). Então, ao fazer o GROUP BY p.nome, a consulta soma as hospedagens ativas de todos os proprietários que têm esse mesmo nome. Por isso aparece o total 3.

Para retornar os dados da tabela proprietarios filtrando pelo nome 'Thiago Porto' e verificar as hospedagens ligadas, você pode usar a seguinte consulta SQL:

SELECT 
    p.proprietario_id,
    p.nome AS nome_proprietario,
    h.hospedagem_id
FROM 
    proprietarios p
JOIN 
    hospedagens h ON p.proprietario_id = h.proprietario_id
WHERE 
    p.nome = 'Thiago Porto';

Essa consulta irá retornar o proprietario_id, o nome do proprietário e os IDs das hospedagens associadas a ele.

Espero ter esclarecido.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!