有两个表,表Users,字段:
UId,UName,UPower,....
表Oview,字段:
OId,WName,....UName=WName,这两个都表示姓名..我想从表Users中抽出UName和UId,条件是:UPower=1并且UName在表Oview中没出现过,也就是和UName相同值的WName在表Oview中不存在...这种sql或plsql能不能写出来的?????以前都是查询查存在的,这种不存在的是不是无法用sql来实现的???

解决方案 »

  1.   

    --方法一
    Select * From Users A Where UName Not In (Select WName From Oview) And UPower = 1--方法二
    Select * From Users A Where Not Exists (Select WName From Oview Where WName = A.UName) And UPower = 1--方法三
    Select A.* From Users A Left Join Oview B
    On A.UName = B.WName
    Where B.WName Is Null And A.UPower = 1
      

  2.   

    select * from Users a where 
    not exists(select 1 from Oview where a.UName=WName)
    and UPower=1
      

  3.   

    晕了...长年不用not in和not exists,竟然把这两个查找不存在的关键字都忘记了..多谢指教...立马结贴...