Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Célio-Ctba

em select 1:n

Recommended Posts

O sistema tem 3 tabelas: pessoas, fotos e uma de relação entre elas pessoas_fotos, já que uma pessoa pode ter várias fotos. Para fazer a busca nelas, uso o INNER JOIN está assim a busca:

SELECT

`nome`,

`foto`

FROM

`pessoas`

Inner Join `pessoas_fotos` ON `pessoas`.`id` = `pessoas_fotos`.`id_pessoa`

Inner Join `fotos` ON `pessoas_fotos`.`id` = `fotos`.`id`

Só que atrelando assim ele só traz a pessoa se ela tiver fotos cadastradas, as pessoas sem fotos ele não traz.

 

O que preciso mudar nesse SQL ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu faria de uma outra maneira.

Como o relacionamento é 1:n não preciso de 3 tabelas. Apenas 2 resolve.

 

pessoa

id_pessoa

nome

.

.

 

foto

id_foto

id_pessoa

foto

.

 

 

A referencia id_pessoa em foto é uma chave estrangeira.

Essa referencia dirá a quem pertence essa foto.

 

A sql para trazer o que voce precisa ficaria mais ou menos assim:

 

SELECT
p.nome, f.foto
FROM pessoas p
Left Join fotos f ON p.id_pessoa = f.id_pessoa

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, funcionou.

 

Agora usando o exemplo acima quando seria necessário ter 3 tabelas? Ou com o tipo de exemplo acima nunca irá precisar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.