From: | Daryl Richter <daryl(at)brandywine(dot)com> |
---|---|
To: | fmiddleton(at)verizon(dot)net, pgsql-sql(at)postgresql(dot)org |
Subject: | Re: showing multiple REFERENCE details of id fields in single |
Date: | 2005-09-15 13:43:28 |
Message-ID: | 43297A80.9030008@brandywine.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
Ferindo Middleton Jr wrote:
> I have a table which has two id fields which REFERENCE data back at
> another table. It's setup like this:
>
> class_prerequisite_bindings(id SERIAL, class_id INTEGER REFERENCES
> classes(id), prerequisite INTEGER REFERENCES classes(id))
>
> The classes table is like this:
> classes(id SERIAL, course_title TEXT, course_code TEXT)
>
> I have the following query:
> SELECT * FROM class_prerequisite_bindings, classes WHERE
> class_prerequisite_bindings.class_id = 64 AND
> class_prerequisite_bindings.class_id = classes.id;
>
> If I run the query above, the result will only give me info about the
> class_id field matching id 64 back in the classes table. PROBLEM: I want
> this query to also show the info about the prerequisite field which
> would also have info at the classes table. This query will only show the
> course_title and course_code of the class_id but I need this for the
> prerequisite field as well. I think I need to do a JOIN, but I don't
> understand how. How can I do this?
>
create table classes(
id SERIAL PRIMARY KEY,
course_title TEXT,
course_code TEXT );
go
insert into classes( course_title, course_code ) values( 'A', 'A1' );
insert into classes( course_title, course_code ) values( 'B', 'B1' );
insert into classes( course_title, course_code ) values( 'C', 'C1' );
go
create table class_prerequisite_bindings(
id SERIAL,
class_id INTEGER REFERENCES classes(id),
prerequisite INTEGER REFERENCES classes(id)
);
go
insert into class_prerequisite_bindings( class_id, prerequisite )
values( 1, 2 );
insert into class_prerequisite_bindings( class_id, prerequisite )
values( 1, 3 );
go
SELECT
a.id AS class_id,
c.id AS prerequisite_class
FROM
classes a
JOIN class_prerequisite_bindings b ON b.class_id = a.id
JOIN classes c ON c.id = b.prerequisite
WHERE
a.id = 1;
go
> Ferindo
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: don't forget to increase your free space map settings
--
Daryl
"We want great men who, when fortune frowns, will not be discouraged."
-- Colonel Henry Knox, 1776
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2005-09-15 13:56:01 | Re: Triggers & Conditional Assignment |
Previous Message | Gnanavel S | 2005-09-15 09:58:04 | Re: Triggers & Conditional Assignment |