Re: minus and intersect functionality

From: David Portas <REMOVE_BEFORE_REPLYING_dportas_at_acm.org>
Date: Tue, 11 Nov 2003 22:34:26 -0000
Message-ID: <vYmdnQOoWZL6_iyiRVn-sA_at_giganews.com>


A generalised minus query using NOT EXISTS:

SELECT symbol
 FROM symbol_table
 WHERE NOT EXISTS
(SELECT *

   FROM trade
   WHERE tsymbol = symbol_table.symbol)

Alternatively, "Minus JOIN", assuming the Symbol column is unique in both tables:

SELECT S.symbol
 FROM symbol_table AS S
 LEFT JOIN trade AS T
  ON S.symbol = T.tsymbol
  AND T.tsymbol IS NULL

Generalised intersection, using EXISTS:

SELECT symbol
 FROM symbol_table
 WHERE EXISTS
(SELECT *

   FROM trade
   WHERE tsymbol = symbol_table.symbol)

Or just an INNER JOIN if Symbol is unique in both tables:

SELECT S.symbol
 FROM symbol_table AS S
 JOIN trade AS T
  ON S.symbol = T.tsymbol

-- 
David Portas
------------
Please reply only to the newsgroup
--
Received on Tue Nov 11 2003 - 23:34:26 CET

Original text of this message