Jump to content

Recommended Posts

Posted

Boas pessoal,

Eu tenho duas tabelas, uma é a poi e a outra descritor.

O que eu desejo é obter o titulo,subtitulo e descricao para cada poi.

O problema é que a tabela descritor tem os seguintes campos:cod_descritor que é automatico, texto_descritor,cod_poi,codtipodescritor e cod_idioma.

Ou seja para cada poi eu tenho 3 registos na tabela descritor. Sendo que o texto_descritor pode ser o tit, o subtitulo ou a descricao. Eu sei que é um destes atraves do codtipodescritor que indica isso mesmo.

Agora a minha pergunta é esta se eu quiser trazer o titulo,o subtitulo e a descricao para cada um dos poi como faço?

eu tinha feito isto, o problema é que se tiver mais de 1 poi já nao fucniona:

select distinct poi.*,(select descritor.texto_descritor from descritor,poi where poi.cod=descritor.cod and descritor.codtipodescritor='tit' and  descritor.cod_idioma='pt' ) as titulo,(select descritor.texto_descritor
from descritor,poi where poi.cod=descritor.cod and descritor.codtipodescritor='subtit' and  descritor.cod_idioma='pt' ) as subtitulo,(select descritor.texto_descritor from
descritor,poi where poi.cod=descritor.cod and descritor.codtipodescritor='desc' and  descritor.cod_idioma='pt' ) as descricao
from(poi, descritor) where(poi.cod = descritor.cod) and poi.username='LeandroR3'
Posted (edited)

Talvez algo do género:

select
poi.*,
tit.texto_descritor as titulo,
subtit.texto_descritor as subtitulo,
descr.texto_descritor as descricao
left join descritor as tit on poi.cod=tit.cod AND tit.codtipodescritor='tit' AND tit.cod_idioma='pt'
left join descritor as subtit on poi.cod=subtit.cod AND subtit.codtipodescritor='subtit' AND  subtit.cod_idioma='pt'
left join descritor as descr on poi.cod=descr.cod AND descr.codtipodescritor='desc' AND  descr.cod_idioma='pt'
Edited by AntonioMateus
Posted

Talvez algo do género:

select
poi.*,
tit.texto_descritor as titulo,
subtit.texto_descritor as subtitulo,
descr.texto_descritor as descricao
left join descritor as tit on poi.cod=tit.cod AND tit.codtipodescritor='tit' AND tit.cod_idioma='pt'
left join descritor as subtit on poi.cod=subtit.cod AND subtit.codtipodescritor='subtit' AND subtit.cod_idioma='pt'
left join descritor as descr on poi.cod=descr.cod AND descr.codtipodescritor='desc' AND descr.cod_idioma='pt'

Boas antonio.

Infelizmente não funciona. .

Cumprimentos

Posted (edited)

Esqueci do from

select
poi.*,
tit.texto_descritor as titulo,
subtit.texto_descritor as subtitulo,
descr.texto_descritor as descricao
from poi
left join descritor as tit on poi.cod=tit.cod AND tit.codtipodescritor='tit' AND tit.cod_idioma='pt'
left join descritor as subtit on poi.cod=subtit.cod AND subtit.codtipodescritor='subtit' AND subtit.cod_idioma='pt'
left join descritor as descr on poi.cod=descr.cod AND descr.codtipodescritor='desc' AND descr.cod_idioma='pt'
WHERE poi.username='LeandroR3'

Vê se assim funciona

Edited by AntonioMateus
Posted

Esqueci do from

select
poi.*,
tit.texto_descritor as titulo,
subtit.texto_descritor as subtitulo,
descr.texto_descritor as descricao
from poi
left join descritor as tit on poi.cod=tit.cod AND tit.codtipodescritor='tit' AND tit.cod_idioma='pt'
left join descritor as subtit on poi.cod=subtit.cod AND subtit.codtipodescritor='subtit' AND subtit.cod_idioma='pt'
left join descritor as descr on poi.cod=descr.cod AND descr.codtipodescritor='desc' AND descr.cod_idioma='pt'
WHERE poi.username='LeandroR3'

Vê se assim funciona

Boas Antonio,

Durante a noite e com a tua anterior query consegui chegar a solução. Esta que deixas aqui.

Funciona na perfeição sim.

Muito obrigado

Cumprimentos

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.