数据库(sql2000)有两个数据表:
代码表 ta 字段 code 代码
名称 name 名称
业务表 tb 其中有2个以上字段为 代码,这里假设有3个子段 code1 ,code2, code3
代码对应的名称在表ta中请问 如何一次读取 3个字段对应的名称我现在的做法是:select name1,name2,name3 from
( select code1,code2,code3 from ta ) as a
left join
( select code,name as name1 from tb )as b on b.code = a.code1
left join
( select code,name as name2 from tb ) as c on c.code = a.code2
left join
( select code,name as name3 from tb ) as d on d.code = a.code3 其中name1 ,name2 ,name3对应3个字段的名称,但我感觉就是效率太低
不知道有什么更好的方法
代码表 ta 字段 code 代码
名称 name 名称
业务表 tb 其中有2个以上字段为 代码,这里假设有3个子段 code1 ,code2, code3
代码对应的名称在表ta中请问 如何一次读取 3个字段对应的名称我现在的做法是:select name1,name2,name3 from
( select code1,code2,code3 from ta ) as a
left join
( select code,name as name1 from tb )as b on b.code = a.code1
left join
( select code,name as name2 from tb ) as c on c.code = a.code2
left join
( select code,name as name3 from tb ) as d on d.code = a.code3 其中name1 ,name2 ,name3对应3个字段的名称,但我感觉就是效率太低
不知道有什么更好的方法
解决方案 »
- 请教一个关于VB封装OCX的问题
- WriteProcessMemory
- 保存文件怎么会出现记录长度错误啊?
- listview刷新的问题!(马上结贴哦)
- *.ocx 在ie窗口中的显示问题
- 该用什么语言才好?
- excel中关于vba编程求解方程的问题
- 怎么样实现移动主窗体,副窗体也跟着移动一样的方向,一样的距离?
- VB调用dll,在dll执行时窗口就不响应鼠标了,该怎么办?出错了,下面的帖子内容拿来的???
- 各路大侠,VB中如何制作E-mail,可以发送附件(多个文件)
- 关于VB和SQL SERVER 2000开发数据库的问题?????????
- 关于VB和SQL SERVER 2000开发数据库的问题?????????
from tb as b,ta as a1,ta as a2,ta as a3
where b.code1=a1.code and b.code2=a2.code and b.code3=a3.code
为什么想在单一记录上非要体现三个name呢?采用记录集循环获取不行吗?
至于用视图,在做项目中,好像没这个必要,如果是存储过程,不知道怎么写,实际需要是:(打个比方)一个人事系统中,一名员工,有一个工号,在另外一个表中有职称代码和名称,因为一个人可能有多个职称,而在个人的基本信息表中一般都存放着代码,所以在查看个人信息时就遇上以上问题,
如果查看一批人的信息,就要考虑效率问题了记录集循环获取的话,效率太低了
用视图的话,一般程序设计不允许
同意 Leftie(Leftie)。
因为如果是一个大公司,例如国企,有上万人,有上万数据量的话,查询一批数据效率是很关键的thanks
嗯,Leftie(Leftie) 的写法如果用SQL编辑器转换,其实就是楼上的写法。 这个效率是高的了,楼主不必苛求了。 最有效率的是只有一个select 的查询,
但是在一个稍微复杂一点的系统中是木有这么简单的事情。
以前在做项目是遇到过一个表中取了6次数据,感觉不舒服希望大家多帮忙想想,今晚6点结贴thanks