List:General Discussion« Previous MessageNext Message »
From:Jerry Schwartz Date:November 18 2008 4:11pm
Subject:Finding not quite duplicates
View as plain text  
As usual, my head is twisted around something that I think should be easy.

Suppose I have a table, `a`,  that has three fields:


I have another table, `b`,  with a list of products of interest:


What I need to do is match `b`.`prod_pub_prod_id` against table
`a`.`prod_pub_prod_id` such that:

1) If there is no match at all, return "".

2) If there is a match in `b` against a row in `b`, and `a`.`prod_discont` =
0, return `a`.`prod_num`. (There should never be two such rows.)

3) If there is a match in `b` against `a`, but the ONLY match is a row where
`a`.`prod_discont` = `, return "discontinued".

1) and 2) are very easily accomplished with a LEFT JOIN:

SELECT IF(prod.prod_num IS NOT NULL,prod.prod_num,"") as prod_num
FROM b LEFT JOIN a ON b.prod_pub_prod_id = a.prod_pub_prod_id
WHERE (a.prod_discont = 0 OR a.prod_discont IS NULL)
ORDER BY b.prod_pub_prod_id;

The problem is with 3). It seems like I should be able to do this with one
query, but I'm beginning to think that I need a separate query and a third

Suggestions, anyone?

Jerry Schwartz
The Infoshop by Global Information Incorporated
195 Farmington Ave.
Farmington, CT 06032
860.674.8796 / FAX: 860.674.8341

Finding not quite duplicatesJerry Schwartz18 Nov
  • Re: Finding not quite duplicatesBill newton19 Nov
    • RE: Finding not quite duplicatesUS Data Export19 Nov
      • Re: Finding not quite duplicatesBill newton19 Nov
  • Re: Finding not quite duplicatesMartijn Tonies19 Nov
    • RE: Finding not quite duplicatesJerry Schwartz19 Nov
  • Re: Finding not quite duplicatesMartijn Tonies20 Nov