SQL查询,唯一性查询输出要求

来源:百度知道 编辑:UC知道 时间:2024/06/22 10:02:22
新人求助:我有3张表,sheet1为基础信息表(n个人),sheet2为学历表(1个人可以有1条以上的记录,但其中有个字段确定其是否最高学历?),sheet3为职称表(1个人可以有1条以上的记录,但其中有个字段确定其是否最高职称?),通过主键可把3张表连起来,但表1中的部分人员可能在表2或3中没有记录,我现在要做一个查询引擎,把1,2,3表中的信息搞到一起显示,但只要2,3 表中的最高记录,1个人只得有一条记录,请高手们指教?在线等!!!
表1中包含表2,3中的人员,最后保留表1中的全部人员.

楼上的这样写是不行滴,会把不在表2,3中的人漏掉,应该用left join左连接
select sheet1.name, sheet2.XL, sheet3.ZC from sheet1
left join sheet2 on sheet2.key=sheet1.key and sheet2.ZG='Y'
left join sheet3 on sheet3.key=sheet1.key and sheet3.ZG='Y'

select * from sheet1,sheet2,sheet3 where sheet1.id *=sheeet2.id and sheet1.id*=sheet3.id and sheet2.zg='是' and sheet3.zg='是'

那个sql2000可以这样写
别的库不知道行不行

补充,
还有另外一种写法
select * from sheet1 left outer join sheet2 on sheet1.id =sheeet2.id andsheet2.zg='是',sheet1 left outer join sheet3 on sheet1.id=sheet3.id and sheet3.zg='是'
这两种写法的效果是一样的

select sheet1中所有字段,sheet2.最高学历,sheet3.最高职称
from sheet1 left join sheet2 on sheet1.员工号=sheet2.员工号
left join sheet3 on sheet1.员工号=sheet3.员工号