Re: sql problem with join

From: "Aaron Bono" <postgresql(at)aranya(dot)com>
To: "Luca Ferrari" <fluca1978(at)infinito(dot)it>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: sql problem with join
Date: 2006-11-17 23:04:28
Message-ID: bf05e51c0611171504q2e60151o2f9a4a80081e4aff@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

On 11/15/06, Luca Ferrari <fluca1978(at)infinito(dot)it> wrote:
>
> On Wednesday 15 November 2006 16:20 your cat, walking on the keyboard,
> wrote:
> > May be you could show the results you are getting and then make up some
> > results that you would really like to get. I am not entirely clear what
> > you are trying to achieve.
>
>
> Lastly I found the solution, for the moment, that should be the following:
> select *
> from peopleRole pr
> left join roleSkill rs on rs.id_role = pr.id_role
> left join peopleSkill ps on ps.id_skill = rs.id_skill
>
> I think it should go, don't you think?

This should list out all roles and their required skills for each person.
It will show you the desired level and the evaluated level.

select
p.*,
r.*,
rs.desired_level,
coalesce(ps.evaluated_level, 0) as evaluated_level
from people p
inner join peopleRole pr on (p.id_person = pr.id_person)
inner join role r on (pr.id_role = r.id_role)
inner join roleSkill rs on (r.id_role = rs.id_role)
inner join skill s on (rs.id_skill = s.id_skill)
left outer join peopleSkill ps on (
p.id_person = ps.id_person
and s.id_skill = ps.id_skill
)

You will have to check it for syntax problems since I didn't run it.

-Aaron

--
==================================================================
Aaron Bono
Aranya Software Technologies, Inc.
http://www.aranya.com
http://codeelixir.com
==================================================================

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message lms 2006-11-17 23:10:19 Re: How convert UNICODE
Previous Message lms 2006-11-17 23:00:44 Re: How convert UNICODE