Peter,

I really appreciate all the help. Unfortunately, the query you came up with still returns two rows for catalog_number = 520.
I modified your query slightly to this to qualify a specific catalog_number:

SELECT c.course_id,s.course_offer_number,s.subject
FROM course c
JOIN course_subject s
ON c.course_id=s.course_id AND s.subject='ME' AND c.catalog_number = 520
UNION
SELECT c.course_id,s.course_offer_number,s.subject
FROM course c
JOIN course_subject s
ON c.course_id=s.course_id AND s.course_offer_number=1 AND s.subject<>'ME' AND c.catalog_number = 520
LEFT JOIN (
SELECT c.course_id,s.course_offer_number,s.subject
FROM course c
JOIN course_subject s ON c.course_id=s.course_id AND s.subject='ME' AND c.catalog_number = 520
) m ON c.course_id=m.course_id
WHERE m.course_id IS NULL

I guess I suppose that there could be multiple 'ME' rows for a particular catalog_number, with different course_offer_numbers. But basically, I only want to grab one subject value. I want it to be 'ME' if a row exists with that subject. Otherwise, grab whatever subject the catalog_number has that's not equal to 'ME' and that has a course_offer_number of 1. Not really sure what to do if there are multiple. I guess for the time being, we are assuming that if there is no 'ME' row, then there will be only one other row for that catalog_number.

Hmmmm......I'm starting to think that what I'm asking for is not doable in one select statement.

Thanks bunches.
Tina


Peter Brawley wrote, On 6/27/08 1:32 PM:
>What I want is ONLY the 'ME' row (if a row exists with a subject of 'ME'). >If an 'ME' subject row does not exist, then I want the other one.

Ill be offline for awhile so I'll assume answers not available, ie allow ='ME' dupes and <>'ME' dupes if they exist. A one-query answer is to union (i) a query for 'me' matches and (ii) a query for 'non-me' matches which excludes 'me' matches:

SELECT c.course_id,s.course_offer_number,s.subject
FROM course_table c
JOIN course_subject s
 ON c.course_id=s.course_id AND s.subject='ME'
UNION
SELECT c.course_id,s.course_offer_number,s.subject
FROM course_table c
JOIN course_subject s
ON c.course_id=s.course_id AND s.course_offer_number=1 AND s.subject<>'ME'
LEFT JOIN (
 SELECT c.course_id,s.course_offer_number,s.subject
 FROM course_table c
 JOIN course_subject s ON c.course_id=s.course_id AND s.subject='ME'
) m ON c.course_id=m.course_id
WHERE m.course_id IS NULL;

PB



--

*Tina Matter*

Web Software Developer

Department of Mechanical Engineering

University of Michigan

734-763-3184


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to