help - JOIN problem

Поиск
Список
Период
Сортировка
От chief_87@yahoo.com (KeithR)
Тема help - JOIN problem
Дата
Msg-id b2f93c8c.0204160610.41b128db@posting.google.com
обсуждение исходный текст
Ответы Re: help - JOIN problem  ("Josh Berkus" <josh@agliodbs.com>)
Список pgsql-sql
note: I also posted this in mailing.database.sql-general


http://groups.google.com/groups?hl=en&group=mailing.database.sql-general&selm=b2f93c8c.0204151045.57840ed9%40posting.google.com

Hi all, I have 3 tables; USER, ACCESS_PATH, and ACCESS (All of the
generation scripts are at the end).  USER contains users information,
ACCESS_PATH contains a URL and an ID, and ACCESS contains USER ids and
ACCESS ids I am basically trying to adminster my home website with access
levels.  So user1 can see some stuff, and user2 can see some other
stuff, while I (admin) can see everything. Here's my problem I'd like to have a query that does a left join on
the cartesian product of USER and ACCESS, thus showing me what users
do and do not have access to, so when a NULL value comes up for some
column ex:
'enabled', the user does not have access otherwise they do.

Any help appreciated,
Keith

---------------
if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[FK_ACCESS_ACCESS_PATH]') and OBJECTPROPERTY(id,
N'IsForeignKey') = 1)
ALTER TABLE [dbo].[ACCESS] DROP CONSTRAINT FK_ACCESS_ACCESS_PATH
GO

if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[FK_ACCESS_USER]') and OBJECTPROPERTY(id,
N'IsForeignKey') = 1)
ALTER TABLE [dbo].[ACCESS] DROP CONSTRAINT FK_ACCESS_USER
GO

if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[ACCESS]') and OBJECTPROPERTY(id, N'IsUserTable') =
1)
drop table [dbo].[ACCESS]
GO

if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[ACCESS_PATH]') and OBJECTPROPERTY(id,
N'IsUserTable') = 1)
drop table [dbo].[ACCESS_PATH]
GO

if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[USER]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[USER]
GO

CREATE TABLE [dbo].[ACCESS] ([user_id] [int] NOT NULL ,[access_id] [int] NOT NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[ACCESS_PATH] ([access_id] [int] IDENTITY (1, 1) NOT NULL ,[path] [varchar] (256) COLLATE
SQL_Latin1_General_CP1_CI_ASNULL 
 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[USER] ([user_id] [int] IDENTITY (1, 1) NOT NULL ,[fname] [varchar] (50) COLLATE
SQL_Latin1_General_CP1_CI_ASNULL ,[lname] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL 
 
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[ACCESS] WITH NOCHECK ADD CONSTRAINT [PK_ACCESS] PRIMARY KEY  CLUSTERED (    [user_id],
[access_id]) ON [PRIMARY] 
 
GO

ALTER TABLE [dbo].[ACCESS_PATH] WITH NOCHECK ADD CONSTRAINT [PK_ACCESS_PATH] PRIMARY KEY  CLUSTERED (    [access_id])
ON[PRIMARY] 
 
GO

ALTER TABLE [dbo].[USER] WITH NOCHECK ADD CONSTRAINT [PK_USER] PRIMARY KEY  CLUSTERED (    [user_id])  ON [PRIMARY] 
GO

ALTER TABLE [dbo].[ACCESS] ADD CONSTRAINT [FK_ACCESS_ACCESS_PATH] FOREIGN KEY (    [access_id]) REFERENCES
[dbo].[ACCESS_PATH](    [access_id]),CONSTRAINT [FK_ACCESS_USER] FOREIGN KEY (    [user_id]) REFERENCES [dbo].[USER] (
 [user_id])
 
GO


В списке pgsql-sql по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: please advise on column data type
Следующее
От: "Josh Berkus"
Дата:
Сообщение: Re: help - JOIN problem