On 7/12/07, Jerry Schwartz <[EMAIL PROTECTED]> wrote:
I believe this query
will do it, but can it be redone without the sub-query by using JOINs?

Yes, use a LEFT JOIN.

Would that be more efficient?

Yes.

SELECT prod.prod_num, price.prod_price
FROM prod JOIN price
WHERE prod.prod_id = price.prod_id
AND price.prod_id NOT IN
(SELECT price.prod_id FROM price
 WHERE price.prod_curr = "YEN");

I don't think this does what you want.  You said you wanted every
product with a USD price but no YEN price.  This one does that:

SELECT   prod.prod_num, usd_price.prod_price
FROM      prod
JOIN         price usd_price ON (prod.prod_id            = usd_price.prod_id
                                      AND usd_price.prod_curr = 'USD')
LEFT JOIN price yen_price ON (prod.prod_id            = yen_price.prod_id
                                      AND yen_price.prod_curr = 'YEN')
WHERE    yen_price.prod_id IS NULL

- Perrin

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

Reply via email to