Re: Many-to-Many relation - Mailing list pgsql-sql

From Peter Childs
Subject Re: Many-to-Many relation
Date
Msg-id Pine.LNX.4.44.0305261445210.6871-100000@RedDragon.Childs
Whole thread Raw
In response to Many-to-Many relation  (Mukta Telang <mukta@darya.nio.org>)
Responses Re: Many-to-Many relation  ("Mukta A. Telang" <mukta@darya.nio.org>)
List pgsql-sql
On Mon, 26 May 2003, Mukta Telang wrote:

> Hi,
> 
> I am designing a database of paper publications.
> 
> A paper has one or more authors and an author has one or more papers.
> In this way there is many-to-many relation.
> 
> An author of a paper has a "level", that is an author of a paper of
> level one is the main author of the paper and the author
>  with level two is the second author of the paper and so on.
> 
> So we have following tables:
> 1. author
> 2. paper
> 3. author_paper
> 
> The attributes of author are:
> 1. author_id
> 2. name
> 
> The attributes of paper are:
> 1. paper_id
> 2. journal
> 3. year
> 4. volume
> 5. issue
> 
> The attributes of author_paper are:
> 1. author_id
> 2. paper_id
> 3. level

SELECT * FROM author_paper full join (author on (author_paper.author_id =
author.author_id) full join paper on (author_paper.paper_id =
paper.paper_id))  ORDER BY paper.paper_id, author_paper.level;

I think is what you want, You will need to replace the * with the fields 
you want of course! (Bung "CREATE VIEW <name> AS" to create the view)
If you don't want to list authors without papers or papers with no 
authors you will need to change "full join" to "left join" and you may 
need to swap the order the joins occur in if you want one but not the 
other.

Peter Childs

> 
> Now I want to create a view which displays all the information about
> every paper.That is title,year,journal,volume, issue and all the authors
> of  the paper sorted according to their level.
> 
> How to do this?
> 
> Thanks in advance,
> 
> Mukta
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly
> 



pgsql-sql by date:

Previous
From: "Michael Mattox"
Date:
Subject: How to delete multiple rows from multiple joined tables
Next
From: Tom Lane
Date:
Subject: Re: How to delete multiple rows from multiple joined tables