Olá pessoal,
to com uma duvida aqui… fiz a junção entre duas tabelas que são noticias e fotos… é um relacionamento 1 para n, ou seja 1 notícia pode conter várias fotos… mas cada foto so pode ter uma notícia…
na tabela fotos tem o campo id da foto q é único e o id da notícia… e eu preciso fazer uma consulta que me retorne o id da noticia e o nome da foto do 2º registro da tabela fotos de cada registro da tabela noticias…
Kra, se vc criou o relacionamento das tabelas certo, sua tabela fotos deve conter PELO MENOS essas colunas:
Id_foto, id_noticia.
Vc vai usar a coluna Id_foto para fazer o controle interno das fotos, sem necessidade de expor isso em alguma parte do seu programa ou usá-la para outro propósito, jah a coluna id_noticia, terá o Id da notícia a qual está vinculada, esse campo poderá se repetir, jah q eh uma relação 1 x n.
Assim sendo, vc deve fazer uma busca:
SELECT * FROM Noticias, Fotos WHERE Noticias.Id = Fotos.Id_Noticia.
Eh mais ou menos isso, adeque de acordo com as colunas da sua tabela,
qq dúvida avise.
[]'s
Eu fiz isso ae mesmo, so q assim a consulta vai me retornar todas as noticias e todas as fotos de cada noticia… mas o q eu preciso é uma consulta q retorne todas as notícias e a 2º foto de cada uma dessas notícias…
noticia==================foto
id===================dnoticia idfoto
5==================== 5===== 1
6==================== 5===== 2
7==================== 6===== 3
===================== 6===== 4
===================== 6===== 5
===================== 7===== 6
===================== 7===== 7
ae a consulta deveria retornar tipo idnoticia 5 id foto 2, idnoticia 6 idfoto 4, idnoticia 7 idfoto 7
Hmmm…
Agora entendi.
Perguntas:
Vc terá sempre 2 fotos?
Caso não, sugestão:
Use um campo da tabela para determinar justamente qual o índice dela referente a notícia ( determinar c eh a primeira, segunda… )
assim vc pode sempre pegar a segunda fazendo:
SELECT Foto FROM Noticias, Fotos WHERE Noticias.Id = X AND Fotos.Indice = X
Qq dúvide avise.
[]'s
aí q tah o problema naum tem esse indice na tabela… e não posso alterar nenhuma tabela do banco… eu iria ser demitido por justa causa heheheheh… é q isso afeta outros sistemas q usam essa tabela…
eu dei essa sugestão pro kra responsável pelo banco, mas ele disse q naum dah pra fazer isso…
obs.: cada notícia tem no minimo 1 foto e no máximo n
Opa, tive uma idéia.
Quando vc mandar consultar o banco e retornar todas as fotos de relacionada notícia, elas virão em uma ordem, não sei qual exatamente, mas GERALMENTE ( posso estar enganado ) vem da primeira q foi registrada para a ultima.
Assim sendo, vc pode puxar todas as fotos, descartar a primeira e pegar a segunda.
Caso contrário, se o banco puxar da ultima pra primeira ( o q acho improvável, mas vamos considerar a hipótese ), crie um array q guardará o “link” para essas fotos. Guarde todos os links nesse array, e faça um método q, ao chegar no ultimo item, te retorne o anterior ( sendo do ultimo pro primeiro, isso te retornará a segunda foto. )
Caso tenha ficado meio confuso, dê um aviso :razz:
Se funcionar avise tb,hehe
kra eu fiz isso e deu certo… mas isso não é muito seguro segundo os meus colegas… dae eu tive q dividir isso em duas consultas…
Obrigado pelas dicas…
Gerson