sql 多表 左右多次链接

发布网友 发布时间:2022-04-25 05:24

我来回答

1个回答

热心网友 时间:2022-04-11 01:26

为什么你那么喜欢用left join?、
我们首先来看表表间的关系,看看需不需要left join。
按照你的表格意思?
t_emp.name='张三'
的入职时间,团队名称和团队所属部门名称。
一个员工,不管何时入职都有一个编号,和入职时间的,都有所属团队和所属部门。
应该不会存在一个员工,没有入职时间,没有编号,不存在所属团队和部门的情况吧。
所以个人感觉觉得你这里的多次左右连接其实是增加了查询的成本,很多应该是没有必要的,直接用hash连接应该就可以。。
当然我并不知道你的业务结构,可能你的设计没问题,如果这样的话,上面的就当我没说。
SELECT t_emp.name 员工名字,t_hr.Indate 入职日期,t_dept.name 团队名称,dept.name 部门名称 from t_emp,t_hr,t_dept,t_dept dept where t_emp.name='张三' and t_emp.H_num=t_hr.num and t_emp.d_num=t_dept.num and t_dept.d_num=dept.num

其实你上面的查询也可以,再套一层就行了,你已经查到所属部门了,在你的结果中加一个t_dept.d_num,然后外面再套一层,让这个t_dept.d_num=t_dept.num就能找到所属部门了。追问我只是将问题通过员工/部门/人事资料这个例子表达出来;事实上需求不是这个;
ok,我试着按照你说的将查询结果再进行一次查询;
tks

追答呵呵,不知道你是什么数据库,我仅仅只会一点oracle而已,帮不到什么大忙的,再说我的qq已经有好几年没用了,早就忘到爪哇过了。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com