select a.ClassName as 班级名,b1.TeacherName as 班主任名,b2.TeacherName as 数学老师名,b3.TeacherName as 语文老师名 from 班级表 a,教师表 b1,教师表 b2,教师表 b2 where a.M_No=b1.TeacherNo and a.Math_No=b2.TeacherNo and a.Chin_No=b3.TeacherNo
select b.field1,b.field2,a.fieldA,a.fieldB.... from a,b where a.x=b.x and a.y=b.y这样的语句好象效率不高. 采用inner join好多了.我曾经又这样的写法在一个一千多条记录的两表连接中发现很慢,分析了一下原因, 用where子句处理时,数据库首先产生一个笛卡尔集,然后进行条件筛选.使用join并加join条件则在此之前进行判断产生最终结果. 因此后者比前者快,尤其在记录比较多的情况下.
from 班级表 a,教师表 b1,教师表 b2,教师表 b2
where a.M_No=b1.TeacherNo
and a.Math_No=b2.TeacherNo
and a.Chin_No=b3.TeacherNo
from a,b
where a.x=b.x
and a.y=b.y这样的语句好象效率不高.
采用inner join好多了.我曾经又这样的写法在一个一千多条记录的两表连接中发现很慢,分析了一下原因,
用where子句处理时,数据库首先产生一个笛卡尔集,然后进行条件筛选.使用join并加join条件则在此之前进行判断产生最终结果.
因此后者比前者快,尤其在记录比较多的情况下.