(1)有查询语句:select班级编号,班级名称from 班级表 where 班级编号not in (select 班级编号 from 学生表where 学生表、性别=‘女’)
问题:将上查询语句改写成用“外连接(OUTER JOIN)”的查询语句
(2)有查询语句:select 学生表、学生编号,学生表、学生名称,班级表、班级编号,班级表。班级名称from 班级表inner join 学生表on 班级表、班级编号=学生表、班级编号where(学生表、性别=‘男’)and(班级表、班级地址=‘计算机楼201室’)
问题:假设学生表中有上万条数据,如何优化查询

解决方案 »

  1.   

    (1)有查询语句:select班级编号,班级名称from 班级表 where 班级编号not in (select 班级编号 from 学生表where 学生表、性别=‘女’)
    问题:将上查询语句改写成用“外连接(OUTER JOIN)”的查询语句你有测试过这种方法效率会比外连接低吗?
      

  2.   

    (1) select 班级编号,班级名称 from 班级表 T where NOT EXISTS (select 1 from 学生表 where 性别='女' AND 班级编号=T.班级编号)
    (2) 只有加索引优化查询了,语句上没什么好优化的了。效率自己测试
      

  3.   

    (1)有查询语句:select班级编号,班级名称from 班级表 where 班级编号not in (select 班级编号 from 学生表where 学生表、性别=‘女’)
    问题:将上查询语句改写成用“外连接(OUTER JOIN)”的查询语句
    select distinct 班级编号,班级名称 from 班级表 left join 学生表 
    on 班级表.班级编号=学生表.班级编号 where 学生表.性别<>‘女’(2)有查询语句:select 学生表、学生编号,学生表、学生名称,班级表、班级编号,班级表。班级名称 from 班级表 
    inner join 学生表 on 班级表.班级编号=学生表.班级编号 where(学生表.性别=‘男’)and(班级表、班级地址=‘计算机楼201室’)
    问题:假设学生表中有上万条数据,如何优化查询好像不用怎么优化了