前段时间为学校的课酬系统做升级的时候遇到这样一个问题:
教师总工作量是根据上课工作量,毕业设计指导工作量,实习指导工作量的总和来计算的。
但是问题来了,有的老师带过课,但是没有带毕业设计和实习,有的带毕业设计和生产实习的老师是外面聘请的兼职老师,没有带过课。
之前做这个系统的时候,以为只要是学校的老师那一定带过课,所以是用左连接来实现的,结果在后来显示总工作量的时候就出现了问题。
下面和大家分享解决这个问题的方法:
假设有三个表,分别是上课工作量表,实习工作量表,毕业设计工作量表,如下图:
shangke shixi bishe
在gridview显示教师总工作量时要把上课工作量,实习工作量和毕设工作量都显示,如下图:
此时左连接以显得无能为力了,这时,我们应当用全连接来解决。
下面是sql语句:
select shangke.year, shangke.name, shangke_work, shixi_work, bishe_work from shangke full join shixi on (shangke.name=shixi.name and shangke.year