1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

SQL 3.5 compact

Discussão em 'Programação' iniciada por evanez, 15 de Outubro de 2008. (Respostas: 4; Visualizações: 584)

  1. Boas....

    Tenho uma dúvida

    Tenho várias tabelas, a principal tem chaves que ligam às outras tabelas.
    Queria fazer um select de todas as tabelas, mesmo que tivesse chaves a null.

    Exemplo:
    Tab1
    ID
    Nome
    Sexo_ID
    Profissao_ID

    Tab2
    ID
    Sexo

    Tab3
    ID
    Profissao

    Mesmo não tendo a coluna Sexo_ID e Profissao_ID preenchida (null) queria mostrar a tab1 com os respectivos nomes.
     
  2. alfinete

    alfinete Power Member

    Código:
    
    select nome,
             sex.sexo,
             prof.profissao
    from tab1
    
    INNER JOIN sex ON  tab1.Sexo_ID  = tab2.id 
    
    INNER JOIN prof ON  tab1.Profissao_ID  = tab3.id 
    
    
    não testei mas é uma coisa assim do genero



    se quizeres por as descrições do sexo e da profissão tens de por os ids dos mesmos na tab 1

    caso contrario fazes

    Código:
    select nome,
                     Profissao_ID  ,
                    sexo_ID
                 from tab1
    
    
     
    Última edição: 15 de Outubro de 2008
  3. RicardoMoreira

    RicardoMoreira Power Member

    select tab1.*, tab2.sexo, tab3.profissao from tab1 left join tab2 on tab1.sexo_id=tab2.id left join tab3 on tab1.profissao_id=tab3.id
     
  4. RicardoMoreira

    RicardoMoreira Power Member


    Uma vez que ele pretende que caso não exista relação na tabela, lhe dê nulo, o inner join tem que ser substituido pelo left join. ;)
     
  5. Muito obrigado pela ajuda.... já tinha pesquisado sobre o assunto e tinha chegado à conclusão que teria de usar o LEFT OUTER JOIN, mas ainda não estava a perceber como funcionava.

    Já experimentei e está um espectáculo ;)
     

Partilhar esta Página