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

MySQL dúvida

Discussão em 'Programação' iniciada por NotoriousXavi, 17 de Maio de 2012. (Respostas: 3; Visualizações: 539)

  1. NotoriousXavi

    NotoriousXavi Power Member

    Equipas do Departamento
    Equipa A | Empregado 1 | Empregado 2 ...
    Equipa B | Empregado 1 | Empregado 3 ...
    Equipa C | Empregado 2 | Empregado 3 ...

    Empregados
    Empregado 1 | João | 25 ...
    Empregado 2 | Pedro | 30 ...
    Empregado 3 | António | 24 ...


    Eu tenho estas 2 tabelas onde Empregado 1, Empregado 2 e Empregado 3 são ID's.

    Estou a tentar fazer uma query que me devolva:
    Equipa A, João, Pedro
    Equipa B, João, António
    Equipa C, Pedro, António

    Já tentei com algo semelhante à resposta mais votada neste site mas devolve 6 resultados: http://stackoverflow.com/questions/444820/left-outer-join-on-two-columns-performance-issue

    Também já estive a ver o LEFT JOIN mas só faz a junção através de junção 1 para 1 e não 1 para 2 (os 2 empregados).

    Alguma ideia de como posso fazer isto?

    Obrigado desde já.
     
  2. NotoriousXavi

    NotoriousXavi Power Member

    Resolvido.
     
  3. Cfreitas

    Cfreitas Power Member

    Select Equipa_id, Nome_Empregado
    from Equipa left join nome empregado where Empregado.empregado_Id=Equipa.empregadoId
    Group by Equipa_id order by Equipa_id

    Alguma coisa deste tipo... Seleccionas os nomes das equipas e dos empregados e fazes um "group by" por Equipa e o respectivo Order.

    Espero que ajude.
    CUmps
     
  4. Vandong

    Vandong Power Member

    Não percebi bem a estrutura da tua tabela Equipas do Departamento.

    Mas penso que o que pretendes já tens algo errado na tua estrutura, deverias ter uma relação de 1:N desta forma:

    Equipa (1)--------(N) Empregados

    Ou seja, ficaria desta forma a tua estrutura:

    Equipas do Departamento
    ID (id da tabela PK)
    NomeEquipa

    Empregados
    ID (id da tabela PK)
    NomeEmpregado
    IDEquipasDepartamento (FK)

    E assim já poderias facilmente fazer a query que pretendes através do LEFT JOIN ;)
     

Partilhar esta Página