Não consegui entender ainda o motivo da repetição de valores. O quê pode estar acontecendo e qual a possível correção?
Não consegui entender ainda o motivo da repetição de valores. O quê pode estar acontecendo e qual a possível correção?
Olá, Fernando!!
Tô aqui para ajudar você! :)
Quando utilizamos o INNER JOIN sem o ON, cada linha da primeira tabela é combinada com todas as linhas da segunda tabela, resultando em um número de linhas na tabela resultante igual ao produto do número de linhas nas duas tabelas originais.
→ A cláusula ON ajuda a definir como as tabelas devem ser conectadas, ou seja, qual a relação entre elas. Isso é útil quando as tabelas têm alguma coluna em comum que você pode usar para relacioná-las. Quando você faz um join entre duas tabelas, a cláusula ON diz ao banco de dados quais colunas devem ser comparadas para encontrar as linhas que devem ser combinadas.
No seu caso, você tem a coluna endereco_id em comum nas duas tabelas. Um sugestão seria utilizar a coluna endereco_id para unir as duas tabelas. Vou deixar abaixo 2 sugestões de como você pode ajustar a consulta.
→ Sugestão 1:
SELECT *
FROM enderecos
INNER JOIN hospedagens ON enderecos.endereco_id = hospedagens.endereco_id;
→ Sugestões 2:
SELECT e.*, h.*
FROM enderecos e
INNER JOIN hospedagens h ON e.endereco_id = h.endereco_id;
Espero ter ajudado! Sucesso nos estudos!
Abraço!