SQL 查询结果数据集,作为另一个查询的条件,效率问题
有3个表,
班级表
班级ID 班级名
学生表
学生ID 学生名 所在班级ID
设备表
设备ID 所属班级ID
现在输入班级名,得到这些班级下的所有学生以及所有设备
select * from student where classid in (select classid from class where classname like '%str%');
select * from device where classid in (select classid from class where classname like '%str%');
这样两次查询,是可以得到结果的,但两个查询里都用了select classid from class where classname like '%str%',数据库会不会很智能的记录这个结果,在第二需要用的时候,就不再查一遍了?
还有个办法是用临时表,但我看SQL Server效率分析那个东西,"select * into 临时表"这个操作是最费时间的。
大神们怎么看呢?