一个视图的建立求助(百分求助)

HITZXL 2004-10-27 03:40:13
T_A表结构
A_ID |A_NAME |A_C_ID
1 |JAVA |1
2 |VB |2
3 |VC |2

T_B表结构
B_ID |B_NAME1|B_NAME2|B_NAME3|A_B_ID
1 |KEY1 |200 |LOCK1 |1
2 |KEY2 |200 |LOCK2 |1
3 |KEY3 |200 |LOCK3 |1
4 |KEY4 |200 |LOCK4 |2
5 |KEY5 |200 |LOCK5 |2
6 |KEY6 |200 |LOCK6 |3
7 |KEY7 |200 |LOCK7 |3

T_C表结构
C_ID |C_NAME
1 |1号
2 |2号
3 |3号
4 |4号
有如上表结构:
我要得到T_A表中数据的所有相关数据,在一个列表中显示如下:

1 JAVA 1号 KEY1,200,LOCK1;<br>KEY2,200,LOCK2;<br>KEY3,200,LOCK3;
2 VB 2号 KEY4,200,LOCK4;<br>KEY5,200,LOCK5;
3 VC 2号 KEY6,200,LOCK6;<br>KEY7,200,LOCK7;

这样的视图该怎么写?请高手不吝赐教!
...全文
142 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
HITZXL 2004-10-27
  • 打赏
  • 举报
回复
哦,明白了,十分感谢
也感谢 baojianjun(包子) 兄的参与
bzszp 2004-10-27
  • 打赏
  • 举报
回复
给T_B表的b_id列创建索引,速度可能会快一些

速度慢是因为对每一条t_a中的数据都需要进行检索,并且还有组合成字符串等操作。
HITZXL 2004-10-27
  • 打赏
  • 举报
回复
ok,
不过好像执行效率很低,半天才出现查询结果
可否告诉我这是什么原因
baojianjun 2004-10-27
  • 打赏
  • 举报
回复
同意樓上的說
纯用sql语句是解决不了的。
HITZXL 2004-10-27
  • 打赏
  • 举报
回复
好的,谢谢大侠,我去试试!
bzszp 2004-10-27
  • 打赏
  • 举报
回复
单纯用sql语句是解决不了的。
bzszp 2004-10-27
  • 打赏
  • 举报
回复
需要先创建一个函数。
例如:
SQL > select job,ename from emp;

JOB ENAME
--------- ----------
CLERK SMITH
SALESMAN ALLEN
SALESMAN WARD
MANAGER JONES
SALESMAN MARTIN
MANAGER BLAKE
MANAGER CLARK
ANALYST SCOTT
PRESIDENT KING
SALESMAN TURNER
CLERK ADAMS

JOB ENAME
--------- ----------
CLERK JAMES
ANALYST FORD
CLERK MILLER

已选择14行。

SQL > create or replace function f_ename(jobno in varchar2)
2 return varchar2 is
3
4 str_return varchar2(200);
5 cursor c_ename(v_jobno varchar2) is select ename from emp where job=v_jobno;
6 begin
7 for str_temp in c_ename(jobno) loop
8 str_return:=str_return | |str_temp.ename;
9 end loop;
10 return str_return;
11 end;
12 /

函数已创建。

SQL > select f_ename(job) from (
2 select distinct job from emp);

F_ENAME(JOB)
---------------------------------------
SCOTT FORD
SMITH ADAMS JAMES MILLER
JONES BLAKE CLARK
KING
ALLEN WARD MARTIN TURNER

SQL >
加上job列:
SQL > select job,f_ename(job) from (
2 select distinct job from emp);

JOB F_ENAME(JOB)
-------------------------------------------------------
ANALYST SCOTT FORD
CLERK SMITH ADAMS JAMES MILLER
MANAGER JONES BLAKE CLARK
PRESIDENT KING
SALESMAN ALLEN WARD MARTIN TURNER

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧