Tina,
>Even if I do this simple query, while hardcoding in a catalog_number:
>SELECT subject, catalog_number FROM course_subject
>WHERE (catalog_number = 520) AND
>((subject = 'ME') OR ((course_offer_number = 1) AND (subject NOT LIKE
'ME')))
Errrm, you mean ...subject <> 'ME'..., don't you!?
>I still get two rows back...
>So I'm not sure what else I need in my Where Clause
You said the query spec was rows with a given catalog_number AND
(subject='ME' OR (course_offer_number of '1' and subject <> 'ME')).
There are two such rows for catalog number 520. What do you want your
query to return in that instance?
PB
-----
Tina Matter wrote:
Even if I do a basic select (with no joins) for a given
catalog_number, I still get two rows back.
Even if I do this simple query, while hardcoding in a catalog_number:
SELECT subject, catalog_number FROM course_subject
WHERE (catalog_number = 520) AND
((subject = 'ME') OR ((course_offer_number = 1) AND (subject NOT LIKE
'ME')))
I still get two rows back:
subject catalog_number
ME 520
MSE 520
So I'm not sure what else I need in my Where Clause
Thanks bunches.
Tina
Peter Brawley wrote, On 6/26/08 3:33 PM:
Tina,
>for some reason, it still pulled all of the rows
Are there multiple rows which meet your WHERE condition? If so, and
if you want just one of them, your need another WHERE condition.
PB
-----
Tina Matter wrote:
Peter,
That was the first query I tried, but for some reason, it still
pulled all of the rows. So I've been trying to come up with another
solution.
Any other ideas?
Thanks for the reply.
Tina
Peter Brawley wrote, On 6/26/08 2:12 PM:
Tina
>Basically, if the subject is "ME", then I want to select that
row. >If there is no row for that catalog_number that has a
subject of "ME",
>then I want to grab the row that has a course_offer_number of '1'
>and a subject that is not equal to "ME".
Is this what you mean?
SELECT ...
FROM course_table c
JOIN course_subject s ON c.course_id=s.course_id
WHERE s.subject="ME" OR (s.course_offer_number=1 AND s.subject <>
"ME");
PB
Tina Matter wrote:
I have two tables:
1.) A course table (stores course_id and catalog_number)
2.) A course_subject table (stores course_id, catalog_number,
subject, and course_offer_number)
For each row in the course_table, there can be many rows in the
course_subject table, due to cross-postings among different
departments.
Here is what I'd like to do.
I would like to grab a list of catalog_numbers from the
course_table, but I only want one row in the course_subject table.
Basically, if the subject is "ME", then I want to select that
row. If there is no row for that catalog_number that has a
subject of "ME", then I want to grab the row that has a
course_offer_number of '1' and a subject that is not equal to "ME".
I am basically only grabbing the subject field from the
course_subject table. If an "ME" subject exists for a
catalog_number, grab that one. Otherwise, grab whatever other
one exists. This is assuming that there will only be one other
one.
Does this make sense? I'd really like to know if there's a way
to do this in one query. I can probably do it in PHP with
multiple selects, building my list as I go. But if there's a
fancy way to do this in one query, then I'd much rather do it that
way.
Thanks for any help.
Tina
------------------------------------------------------------------------
No virus found in this incoming message.
Checked by AVG. Version: 8.0.101 / Virus Database: 270.4.1/1521 -
Release Date: 6/26/2008 11:20 AM
------------------------------------------------------------------------
No virus found in this incoming message.
Checked by AVG. Version: 8.0.101 / Virus Database: 270.4.1/1521 -
Release Date: 6/26/2008 11:20 AM
------------------------------------------------------------------------
No virus found in this incoming message.
Checked by AVG.
Version: 8.0.101 / Virus Database: 270.4.1/1521 - Release Date: 6/26/2008 11:20 AM