不合并删除记录

Eliminate Records Without Combination

我在TEMP_DATAtable

中有以下数据

从这些记录中,我只想获取那些具有 CAT_NO 36 和 39 记录组合的记录,理想情况下我的预期结果如下

我该怎么做?

我没有要测试的 Oracle8 实例,但这应该可以:

select * from temp_data where prod_no in ( 
    select prod_no from temp_data where cat_no = 39 and prod_no in (
       select prod_no from temp_data where cat_no = 36 ) ) ;

你为什么不尝试相交。

 SELECT prod_type,
       prod_no,
       cat_no,
       prod_cat,
       text,
       prod_seq
  FROM temp_data
 WHERE prod_no IN (SELECT prod_no
                     FROM temp_data
                    WHERE cat_no = 36
                   INTERSECT
                   SELECT prod_no
                     FROM temp_data
                    WHERE cat_no = 39)