sql 1
select pgdwgms.dwg_no, pgdwgms.dwg_rev, pgdwgms.isse_no
  from pgdwgms, pgappref
 where pgdwgms.acur_fg = '1'
   and pgdwgms.status > '7'
   and (PGAPPREF.upd_who = '0032' and PGAPPREF.table_no = '2' and
       PGAPPREF.record_type = '1' and pgappref.seq_no = pgdwgms.seq_no )
       order by pgdwgms.dwg_no, pgdwgms.dwg_revsql2
select pgdwgms.dwg_no, pgdwgms.dwg_rev, pgdwgms.isse_no
  from pgdwgms, pgappref, pgissetr
 where pgdwgms.acur_fg = '1'
   and pgdwgms.status > '7'
   and ((instr(PGAPPREF.upd_who, '0') = 1 and table_no = '1' and
       record_type = '4')
   and pgappref.seq_no = pgissetr.seq_no
   and pgissetr.isse_no = pgdwgms.isse_no) 
   order by pgdwgms.dwg_no, pgdwgms.dwg_rev如何找两句共同值,不要用inner join语句,TKS

解决方案 »

  1.   

    呵呵,最简单的方法,是用minus
      

  2.   

    这种方法不适合我的程序,我程序中是判断多条件,根据条件拼接sql
      

  3.   

    例如满足条件一时sql是sql1(后面的order by 去掉),在sql1基础去写条件2,如果用sql1 minus sql2,出现条件三就不好处理了
      

  4.   


    select pgdwgms.dwg_no, pgdwgms.dwg_rev, pgdwgms.isse_no
      from pgdwgms, pgappref
     where pgdwgms.acur_fg = '1'
       and pgdwgms.status > '7'
       and ((条件一 and (PGAPPREF.upd_who = '0032' and PGAPPREF.table_no = '2' and
           PGAPPREF.record_type = '1' and pgappref.seq_no = pgdwgms.seq_no ) 
             or --增加this
           (条件二 and ((instr(PGAPPREF.upd_who, '0') = 1 and table_no = '1' and
           record_type = '4')
           and pgappref.seq_no = pgissetr.seq_no
           and pgissetr.isse_no = pgdwgms.isse_no))
      

  5.   


    TKS需要的是交集,但给OR改成“and”结果又为空值了
      

  6.   


    交集 就是 intersect
    sql1
    intersect
    seql2
    intersect
    sql3
    intersect
    sql4
    .....
      

  7.   

    sql1
    intersect
    seql2
    不想这么写,如果这么写,我的最终sql很臃肿
      

  8.   

    不明白楼主的意思。两条语句intersect一下会很臃肿?