mssql:两个表查询最高效果率语句
user是用户表,有很多个用户,book是书库,每个用户在书库里可能有多本书,
user表:
userid username
book表:
bookid userid
现在要列出在书库在有书的书的用户名,
可以这样写:select username form user where userid in (select userid form book)
1、由于真实的数据很多,不知道有没有更高的效率写法?
2、用INNER JOIN可否?
麻烦写出完整的语句,谢谢。
补充:select username from user where userid exists (select distinct userid from book) 这个不对,应该是:select username from user where exists (select distinct userid from book) ,不过还是非常感谢。
答案:select username from user where userid exists (select distinct userid from book)
这样比使用 in 要更有效率
其他:子查询一般情况要比关联效率高
inner join不一定比你的方法快
select username
from user a
inner join book b
on a.userid=b.userid
试试建个索引
上一个:为什么每次开电脑都有个名称叫MSSQL$SQLEXPRESS的未知系统服务正在被装入?
下一个:XP配置ASP.NET+MSSQL可以么??