LEFT JOIN e MIN na segunda tabela
Boa noite!
Depois de tanto quebrar a cabeça vim pedir ajuda aos amigos do forum.
Estou usando o banco de dados access e nele tenho duas tabelas:
Tabela_produtos
id
produto
tabela_fotos
id_foto
id_produto
foto
O problema é que na tabela fotos podem existir mais de uma foto para cada produto da mesma forma que este pode ficar vazio.
Então fiz a seguinte instrução SQL:
SELECT a.id, a.produto, b.foto
FROM tabela_produtos AS a LEFT JOIN tabela_fotos as b ON a.id = b.id_produto
A instrução junta as tabelas corretamente, o problema é que quando o produto tem mais de uma foto ele exibe todas, como por exemplo:
produto foto
1 24.jpg
2
3 25.jpg
4 25.jpg
Já usei a instrução:
SELECT a.id, a.produto, b.foto
FROM tabela_produtos AS a LEFT JOIN tabela_fotos as b ON a.id = b.id_produto
WHERE b.id_foto=(Select MIN(b.id_foto) FROM tabela_fotos as b)
Mas ai ele mostra somente uma foto no banco de dados.
alguem sabe como resolver o problema?
Desde já agradeço.
Depois de tanto quebrar a cabeça vim pedir ajuda aos amigos do forum.
Estou usando o banco de dados access e nele tenho duas tabelas:
Tabela_produtos
id
produto
tabela_fotos
id_foto
id_produto
foto
O problema é que na tabela fotos podem existir mais de uma foto para cada produto da mesma forma que este pode ficar vazio.
Então fiz a seguinte instrução SQL:
SELECT a.id, a.produto, b.foto
FROM tabela_produtos AS a LEFT JOIN tabela_fotos as b ON a.id = b.id_produto
A instrução junta as tabelas corretamente, o problema é que quando o produto tem mais de uma foto ele exibe todas, como por exemplo:
produto foto
1 24.jpg
2
3 25.jpg
4 25.jpg
Já usei a instrução:
SELECT a.id, a.produto, b.foto
FROM tabela_produtos AS a LEFT JOIN tabela_fotos as b ON a.id = b.id_produto
WHERE b.id_foto=(Select MIN(b.id_foto) FROM tabela_fotos as b)
Mas ai ele mostra somente uma foto no banco de dados.
alguem sabe como resolver o problema?
Desde já agradeço.
Marcelo Lopes
Curtidas 0
Respostas
Mariana Carvalho
11/11/2013
qual o SGBD?
GOSTEI 0
Alex Lekao
11/11/2013
Ola Bom dia!!!
Esperimente colocar um DISTINCT na lista de campos e verifica se resolve.
Espero ter ajudado.
Abraco.
Alex - Lekao
Esperimente colocar um DISTINCT na lista de campos e verifica se resolve.
Espero ter ajudado.
Abraco.
Alex - Lekao
GOSTEI 0
Mariana Carvalho
11/11/2013
Ola Bom dia!!!
Esperimente colocar um DISTINCT na lista de campos e verifica se resolve.
Espero ter ajudado.
Abraco.
Alex - Lekao
Esperimente colocar um DISTINCT na lista de campos e verifica se resolve.
Espero ter ajudado.
Abraco.
Alex - Lekao
Alex, é SQL Server?
GOSTEI 0
Alex Lekao
11/11/2013
Nao sei.
GOSTEI 0
Mariana Carvalho
11/11/2013
mas esse T-SQL serve para qualquer SGBD?
GOSTEI 0
Deivison Melo
11/11/2013
T-SQL é a extensão de SQL do MS SQL SERVER.
GOSTEI 0
Mariana Carvalho
11/11/2013
desculpe, escrevi de forma erronea. isso seria a base do codigo sql de todos os bancos?
GOSTEI 0
Alex Lekao
11/11/2013
o T-SQL se nao me engano eh Microsoft, como o Deivison postou acima, do SQL Server.
agora SQL eh a estrutura de todos os bancos.
se eh que posso dizer assim... rsrsr
agora SQL eh a estrutura de todos os bancos.
se eh que posso dizer assim... rsrsr
GOSTEI 0