一个简单的查询语句的优化
表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)