第一个查询

   (SELECT a.cat_id,
          a.cat_name,
          a.cat_description,
          b.subcat_name,
          b.subcat_description
     FROM trade_categories a
LEFT JOIN trade_subcategories b ON a.cat_id = b.cat_id
    WHERE a.cat_name LIKE '%catty%'
       OR a.cat_description LIKE '%catty%')
UNION
  (SELECT c.cat_id,
          d.cat_name,
          d.cat_description,
          c.subcat_name,
          c.subcat_description
     FROM trade_subcategories c
LEFT JOIN trade_categories d ON c.cat_id = d.cat_id
    WHERE c.subcat_name LIKE '%catty%'
       OR c.subcat_description LIKE '%catty%')

第二个查询:
SELECT x.cat_id,
       x.cat_name,
       x.cat_description,
       y.subcat_name,
       y.subcat_description
 FROM  trade_categories x
  JOIN trade_subcategories y ON x.cat_id = y.cat_id
 WHERE (   x.cat_name LIKE '%catty%'
        OR x.cat_description LIKE '%catty%' )
   AND (   y.subcat_name NOT LIKE '%catty%'
        OR y.subcat_description NOT LIKE '%catty%' )

我想从第一查询结果中减去第二查询结果。

最佳答案

http://www.bitbybit.dk/carsten/blog/?p=71

或者
例子:

SELECT Name FROM employee1  WHERE name NOT IN (SELECT name FROM employee2);

09-11 19:56