Would LIMIT work?

select distinct prod_id from products, detail where <somedetailwhere>
and product.prod_id = detail.prod_id LIMIT 1;


Original Message:
-----------------
From: BD [EMAIL PROTECTED]
Date: Mon, 28 Jan 2002 12:12:48 -0600
To: [EMAIL PROTECTED]
Subject: How to emulate subselect on larger table? ###


I have 2 tables, detail and product. The detail table could have millions
of rows. The product table could have a few hundred. I need to know which
products are in the detail table. (It would also be nice to know which
products aren't in the detail table). The problem is it has to be fast,
very fast.  Since it is on a web server it can't tie up the CPU for several
seconds while it needlessly returns thousands of records.  I only need to
know which fields from one table *exist* in the other table. Sounds simple
right?

Ideally it would look like:
     select product_id from products where prod_id in (select prod_id from
detail where <somedetailwhere>);

The <somedetailwhere> is an optional where clause that could be applied to
the detail table. It will use indexes so it will be quite fast.

Now if I try a simple join like:
     select prod_id from products, detail where <somedetailwhere> and
product.prod_id = detail.prod_id;
it will of course return duplicate prod_id's because the product could
appear in tens of thousands of  detail items. I don't need to return
thousands of rows. I only need to return 1 row of each prod_id if that
prod_id appears in the detail table.

I can't use:
     select distinct prod_id from products, detail where <somedetailwhere>
and product.prod_id = detail.prod_id;
because it takes too long. It will still returns hundreds of thousands of
rows unnecessarily.

So is there a solution to this "simple" problem?

TIA

Brent

---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <mysql-unsubscribe-##L=##[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

--------------------------------------------------------------------
mail2web - Check your email from the web at
http://mail2web.com/ .


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <mysql-unsubscribe-##L=##[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to