From: | "Aaron Bono" <postgresql(at)aranya(dot)com> |
---|---|
To: | "John Tregea" <john(at)debraneys(dot)com> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Joining a result set from four (4) tables |
Date: | 2006-07-31 08:12:29 |
Message-ID: | bf05e51c0607310112wbc75fedkb21773c5bb64d11e@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
On 7/31/06, John Tregea <john(at)debraneys(dot)com> wrote:
>
> Hi,
>
> Can anyone help me with the following?
>
> I am setting up a series of permissions of my own making in pgSQL 8.1.4.
> I have the following tables;
>
> resource -- a list of available resources
> actions -- the actions available to the user
> policies -- the actions that are allowed to be performed on individual
> resources
> permissions -- matches users with granted actions on any resource
> users -- no surprises here
>
>
> I have read the docs about joins but cannot get my head around the
> correct syntax. The following SQL returns all actions for every resource
>
> SELECT
> permission.serial_id,
> resource.name,
> actions.name,
> actions.classification,
> actions.display_group,
>
> FROM
> permission, policies, resource, actions
>
> WHERE
> permission.user_id = '11' AND
> permission.related_id = policies.serial_id AND
> policies.status = 'Active' AND
> permission.status = 'Active'AND
> actions.status = 'Active'AND
> resource.status = 'Active'
>
> I need a list of permissions back for each resource that a user is
> authorised to access (when they login to their GUI).
>
> I also need to check (at user login) if every record in the chain (e.g.
> resource, action, policy and permission) is "Active" before the
> permission record is considered valid.
>
> The list for a resource called 'Scenarios' would look something like:
>
> 11900;"Scenarios";"Publish";"Action";"B"
> 11900;"Scenarios";"Authorise";"Action";"B"
> 11900;"Scenarios";"Create";"Action";"C"
> 11900;"Scenarios";"Update";"Action";"C"
>
> I am guessing it should be an inner join? but by reference book does not
> show joins on this many tables.
>
> Thanks in advance for any help.
Can you include the table create statements with primary and foreign keys?
That would help a lot.
==================================================================
Aaron Bono
Aranya Software Technologies, Inc.
http://www.aranya.com
==================================================================
From | Date | Subject | |
---|---|---|---|
Next Message | Manlio Perillo | 2006-07-31 08:57:43 | Re: primary keys as TEXT |
Previous Message | John Tregea | 2006-07-31 07:31:59 | Joining a result set from four (4) tables |