Jump to content
Carlos Rocha

várias chaves estrangeiras apontando para a mesma chave primaria

Recommended Posts

Carlos Rocha

Tenho a seguinte SQL:

 

   SELECT         
       celulas.idCelula, 
       celulas.idPastor,
       membros.nome,
       celulas.idRede,
       redes.nome,
       celulas.idRegiao, 
       regioes.nome,
       celulas.idArea,
       areas.nome,
       celulas.idSetor,
       setores.nome,
       celulas.idAnfitriao, 
       celulas.idLider,  
       celulas.idAuxiliar,
       celulas.diaReunioes,
       celulas.dataMultiplicacao,
       celulas.origem,
       celulas.nome 
    FROM   membros, pastores, redes, regioes, areas, setores, celulas
    WHERE                 
       pastores.idMembro = membros.idMembro AND
       celulas.idPastor  = pastores.idPastor AND 
       celulas.idRede    = redes.idRede AND
       celulas.idRegiao  = regioes.idRegiao AND
       celulas.idArea    = areas.idArea AND
       celulas.idSetor   = setores.idSetor

Agora,   

celulas.idPastor  = pastores.idPastor 

e   

pastores.idMembro = membros.idMembro

Desta forma na parte do select:

    celulas.idPastor,
    membros.nome,

 Na esperança de obter o nome do pastor.

O problema agora é que    

   celulas.idPastor,
   celulas.idAnfitriao, 
   celulas.idLider,  
   celulas.idAuxiliar,

Todos apontam para  

  membros.idMembro

Minha dúvida:

Como obter o nome de cada um deles separadamente se todos apontam para    

membros.idMembro

Obs.: NÃO existe uma tabela de anfitriões nem de Líderes nem de auxiliares pois todos são cadastrados como membros

Edited by carcleo

Share this post


Link to post
Share on other sites
M6

Tens de fazer tantas referências a membro quantas as entidades diferentes que necessitas, algo to género.:

select pastor.*, cedulas.*
from pastor, cedulas, membro as mp, membro as ma, membro as ml membro as maux
where 
   pastor.pastorid = celulas.idPastor
   and pastor.idMembro = mp.id
   and celulas.idAnfitriao = ma.id
   and celulas.idLider = ml.id
   and celulas.idAuxiliar = maux.id

 


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites

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.