Junção entre tabelas

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