On Fri, 06 Aug 2004 13:17:42 -0400, Michael Stassen
<[EMAIL PROTECTED]> wrote:
> You need a LEFT JOIN:
> 
>    SELECT ticket_number
>    FROM purchased_items LEFT JOIN purchases
>    ON purchased_items.ticket_number = purchases.ticket_number
>    WHERE purchases.ticket_number IS NULL;


No, actually he doesn't.

SELECT ticket_number
FROM purchased_items
WHERE ticket_number NOT IN 
          (SELECT ticket_number FROM purchases);

The above will most certainly be faster than any join, because it is
only a couple projections and a simple selection over ticket_number
(which is almost certainly indexed).

Although, I suppose if this is only a maintenance query (I suspect it
is), then it probably doesn't matter. But, the bottom line is: if you
can avoid join, do it. There's only so much the query optimizer can
do.




-- 

Matt Warden
Berry Neuroscience Lab
Department of Psychology
Miami University



This email proudly and graciously contributes to entropy.

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

Reply via email to