From: | David Fetter <david(at)fetter(dot)org> |
---|---|
To: | Steve Castellotti <SteveC(at)innocent(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: determining which table to lookup depending on data values |
Date: | 2006-12-18 08:48:28 |
Message-ID: | 20061218084828.GA2345@fetter.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Sun, Dec 17, 2006 at 08:14:43PM +1300, Steve Castellotti wrote:
>
> Hello all-
> I'm working with a poorly-designed schema and need to do a lookup in one
> table who's name I have to pull from a second table. I'm wondering if its
> possible to do something like this in PostgreSQL:
> Say I have three tables:
> CREATE TABLE audio (id int4, name varchar(32));
> CREATE TABLE video (id int4, name varchar(32));
> CREATE TABLE media (id int4, table_name varchar(32), table_id int4);
> with data:
> INSERT INTO audio VALUES (0, 'file.wav');
> INSERT INTO video VALUES (0, 'file.avi');
> INSERT INTO media VALUES (0, 'audio', 0);
> INSERT INTO media VALUES (1, 'video', 0);
> Is there any way, especially in a single statement, where I can get the
> name of a few if I only have the media table's id?
> SELECT name FROM (SELECT table_name FROM media WHERE media_id=1);
> Of course I get back an error about needing to give my subquery an
> alias, but even if I do so I only get the output from the subquery, instead
> of being able to tell PostgreSQL to use that output as the name of the table
> it should use to look up "name"
> The original design was meant for a multimedia play which could use a
> mixture of audio and video in a playlist, and that which housed all of the
> entries for the playlist could just refer to an id for the media table. When
> the software plays it has to pull this information out and do a single
> lookup for each item. This looses referential integrity and means you can't
> get from a play down to a specific file with one query.
> Thanks in advance!
> Steve Castellotti
Here's a sketch of what you can do about this. Let me know whether
any of it's unclear :)
http://archives.postgresql.org/sfpug/2005-04/msg00022.php
Cheers,
D
--
David Fetter <david(at)fetter(dot)org> http://fetter.org/
phone: +1 415 235 3778 AIM: dfetter666
Skype: davidfetter
Remember to vote!
From | Date | Subject | |
---|---|---|---|
Next Message | riki | 2006-12-18 08:52:27 | installing postgres on win Me... |
Previous Message | Richard Huxton | 2006-12-18 08:02:08 | Re: Tsearch2 install on postgres 8.2 NOTICE messages |