日期:2014-05-18 浏览次数:20511 次
这样? select a.classname,b.name from class a,student b where a.classcode=b.classcode
------解决方案--------------------
班级表:Class
classcode classname
1001 一班
1002 二班
1003 三班
学生表:Student
code name classcode
2007001 张三 1001
2007002 李四 1001
2007003 王五 1002
2007004 马六 1003
---------------
select a.classname ,b.name
from Class a left join Student b
on a.classcode =b.classcode
------解决方案--------------------
select classname , name = '' , classcode from class union all select classname = '', name , classcode from student order by classcode,name
------解决方案--------------------
不对,要多出一行。用来表示上下属关系
不只是关联查询
-------------------
如果你要显示这种层次关系,在oracle 有一个命令出来的结果就是这个样子的
------解决方案--------------------
显示问题交给前台程序处理
------解决方案--------------------
create table Class (classcode varchar(10),classname varchar(10)) insert into Class values('1001', '一班') insert into Class values('1002', '二班') insert into Class values('1003', '三班') create table Student (code varchar(10),name varchar(10),classcode varchar(10)) insert into student values('2007001', '张三', '1001') insert into student values('2007002', '李四', '1001') insert into student values('2007003', '王五', '1002') insert into student values('2007004', '马六', '1003') go select classname , name = '' , classcode from class union all select classname = '', name , classcode from student order by classcode,name drop table class,student /* classname name classcode ---------- ---------- ---------- 一班 1001 李四 1001 张三 1001 二班 1002 王五 1002 三班 1003 马六 1003 (所影响的行数为 7 行) */