日期:2014-05-17  浏览次数:20506 次

一个简单的查询语句的优化
表1:User1
U_AID 编号
Uname 名字
表2:CGInfo
U_AID User1表的外键


功能:查询所有在表2没有出现过的用户的编号和名字

自己照着书写了一个,总感觉似乎太长了,不够精简,也不知道从哪儿着手优化,请教各位大侠指点,谢谢!!!!


SELECT U_AID, Uname  
  FROM [User1]
  where Uname not in (SELECT User1.Uname FROM User1, CGInfo where CGInfo.U_AID = User1.U_AID)

------解决方案--------------------
这样更好:
SELECT U_AID, Uname  
  FROM [User1]
  where not exists (SELECT 1 FROM  CGInfo where CGInfo.U_AID = User1.U_AID)