From: | "Oliveiros d'Azevedo Cristina" <oliveiros(dot)cristina(at)marktest(dot)pt> |
---|---|
To: | "Jedrin" <jrubiando(at)gmail(dot)com>, <pgsql-sql(at)postgresql(dot)org> |
Subject: | Re: join table problem |
Date: | 2010-08-04 11:11:35 |
Message-ID: | 4283335591EA4532BCE90938FCF5136F@marktestcr.marktest.pt |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Howdy!
> At any rate, say I have 3 tables:
>
> table plant
> id:integer
> name string
>
>
> table seed_supplier
> id: integer
> company_name: string
>
> table plant_seed_supplier
> plant_id
> seed_supplier_id
>
> plant_seed_supplier is a join table that supports a many to many
> relationship between the plant table and the seed supplier table since
> any plant may have multiple seed suppliers and any seed supplier can
> sell seeds for many different plants.
>
> I would like to be able to write a single query that basically does
> this:
>
> It will show only one distinct row for each plant in the database. It
> will show either just one seed_supplier company name associated with
> that plant, or if there is no supplier associated with that plant it
> will show the plant in a row with that field empty.
>
You do not specify what is the seed_supplier company name that should appear
in the case there is more than one
Give this (untested) query a try
SELECT name,MIN(company_name)
FROM plant a
JOIN plant_seed_supplier associative
ON plant_id = a.id
JOIN seed_supplier b
ON b.id = supplier_id
GROUP BY name
Best,
Oliveiros
From | Date | Subject | |
---|---|---|---|
Next Message | Frank Bax | 2010-08-04 11:20:31 | Re: What does PostgreSQL do when time goes backward? |
Previous Message | Marc Mamin | 2010-08-04 10:35:58 | workaround for missing ROWNUM feature with the help of GUC variables |