create view employeeInformation as
SELECT
employee.employeeId,
employee.employeeName,
empsalary.salary,
employee.birthday,
employee.cardNo,
employee.insuranceNo,
employee.sex,
empdepartment.departmentId,
empkind.employeeKindId,
empheadship.headshipKindId,
empresidence.residenceKindId,
empstatus.statusKindId
FROM
employee
LEFT OUTER JOIN empsalary empsalary on (employee.employeeId = empsalary.employeeId
and empsalary.id=(select MAX(id) from empsalary where employee.employeeId = empsalary.employeeId) )
LEFT OUTER JOIN empdepartment empdepartment on (employee.employeeId = empdepartment.employeeId
and empdepartment.id=(select MAX(id) from empdepartment where employee.employeeId = empdepartment.employeeId) )
LEFT OUTER JOIN empkind empkind on (employee.employeeId = empkind.employeeId
and empkind.id=(select MAX(id) from empkind where employee.employeeId = empkind.employeeId) )
LEFT OUTER JOIN empheadship empheadship on (employee.employeeId = empheadship.employeeId
and empheadship.id=(select MAX(id) from empheadship where employee.employeeId = empheadship.employeeId))
LEFT OUTER JOIN empresidence empresidence on (employee.employeeId = empresidence.employeeId
and empresidence.id=(select MAX(id) from empresidence where employee.employeeId = empresidence.employeeId))
LEFT OUTER JOIN empstatus empstatus on (employee.employeeId = empstatus.employeeId
AND empstatus.id=(select MAX(id) from empstatus where employee.employeeId = empstatus.employeeId)) 左联接表中存有employeeId对应的多条记录,匹配最新插入的记录,就是id号最大的记录,2000条数据,查询要8秒多,
怎么优化啊?
SELECT
employee.employeeId,
employee.employeeName,
empsalary.salary,
employee.birthday,
employee.cardNo,
employee.insuranceNo,
employee.sex,
empdepartment.departmentId,
empkind.employeeKindId,
empheadship.headshipKindId,
empresidence.residenceKindId,
empstatus.statusKindId
FROM
employee
LEFT OUTER JOIN empsalary empsalary on (employee.employeeId = empsalary.employeeId
and empsalary.id=(select MAX(id) from empsalary where employee.employeeId = empsalary.employeeId) )
LEFT OUTER JOIN empdepartment empdepartment on (employee.employeeId = empdepartment.employeeId
and empdepartment.id=(select MAX(id) from empdepartment where employee.employeeId = empdepartment.employeeId) )
LEFT OUTER JOIN empkind empkind on (employee.employeeId = empkind.employeeId
and empkind.id=(select MAX(id) from empkind where employee.employeeId = empkind.employeeId) )
LEFT OUTER JOIN empheadship empheadship on (employee.employeeId = empheadship.employeeId
and empheadship.id=(select MAX(id) from empheadship where employee.employeeId = empheadship.employeeId))
LEFT OUTER JOIN empresidence empresidence on (employee.employeeId = empresidence.employeeId
and empresidence.id=(select MAX(id) from empresidence where employee.employeeId = empresidence.employeeId))
LEFT OUTER JOIN empstatus empstatus on (employee.employeeId = empstatus.employeeId
AND empstatus.id=(select MAX(id) from empstatus where employee.employeeId = empstatus.employeeId)) 左联接表中存有employeeId对应的多条记录,匹配最新插入的记录,就是id号最大的记录,2000条数据,查询要8秒多,
怎么优化啊?
解决方案 »
- Can't connect to MySQL server on '183.37.81.152' (10060)
- mysql 5.5.12连接问题
- 求查询一个时间段的SQL语句
- 如何将c#的image存储为postgreSQL的bit类型
- 得到本日所在的周
- 在 linux下输入"mysql"命令,进入mysql命令行,但出现“Can't connetc to local MySQL server thuough socket /var/lib/mysql/mysql.sock
- mysql的一个连接问题
- 請問如何在mysql5.0裡更改我已創建的存儲過程!?
- 一直认为数据库就是表的集合,看来好像不是哦
- MySQL登陆不进去了如何解决?(Win8)
- 很困扰的问题..走 过的朋友帮帮忙吧.
- 有个疑问想请教。
For example
EXPLAIN SELECT ...;