SQL多个表联合查询优化的问题
请问我有一个表和4个子表要联合查询。放在一个GRID里面一般查询是select成绩表.ID,姓名表.学生姓名,班级表.班级名,成绩表.语文,成绩表.数学,教师表.老师姓名...
请问 我有一个表和4个子表 要联合查询。放在一个GRID里面 一般查询是
select 成绩表.ID,姓名表.学生姓名,班级表.班级名,成绩表.语文,成绩表.数学,教师表.老师姓名 from
(1) 成绩表,姓名表,班级表,教师表 where 成绩表.学生ID =姓名表.学生ID and 成绩表.班级ID=班级表.ID and 成绩表.教师ID=教师表.ID
(2) 成绩表 left join 姓名表 on 成绩表.学生ID =姓名表.学生ID left join 班级表 on 成绩表.班级ID=班级表.ID left join 教师表 on 成绩表.教师ID=教师表.ID
有这2种方法来查数据我的本意是做数据库分页 而且由于条件比较多 所以我选择了视图在处理方式。从上面的代码来看(2)的效率会比(1)高。可是视图要是有索引则不允许有left join 方式。
所以有点2难。是放弃视图索引 还是选择(1)方法。如果选择了索引那 (1)和(2)的查询速度差别很大吗。。在记录数比较庞大的时候。。。
这样做好视图我就可以直接在存储过程采用分页方法来实现海量数据的快速查询了。。 展开
select 成绩表.ID,姓名表.学生姓名,班级表.班级名,成绩表.语文,成绩表.数学,教师表.老师姓名 from
(1) 成绩表,姓名表,班级表,教师表 where 成绩表.学生ID =姓名表.学生ID and 成绩表.班级ID=班级表.ID and 成绩表.教师ID=教师表.ID
(2) 成绩表 left join 姓名表 on 成绩表.学生ID =姓名表.学生ID left join 班级表 on 成绩表.班级ID=班级表.ID left join 教师表 on 成绩表.教师ID=教师表.ID
有这2种方法来查数据我的本意是做数据库分页 而且由于条件比较多 所以我选择了视图在处理方式。从上面的代码来看(2)的效率会比(1)高。可是视图要是有索引则不允许有left join 方式。
所以有点2难。是放弃视图索引 还是选择(1)方法。如果选择了索引那 (1)和(2)的查询速度差别很大吗。。在记录数比较庞大的时候。。。
这样做好视图我就可以直接在存储过程采用分页方法来实现海量数据的快速查询了。。 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询