读书人

请问有没有比这更好的SQL语句?有空进

发布时间: 2012-01-12 22:11:58 作者: rapoo

请教有没有比这更好的SQL语句?有空进来看看

班级表:Class

classcode classname
1001 一班
1002 二班
1003 三班

学生表:Student
code name classcode
2007001 张三 1001
2007002 李四 1001
2007003 王五 1002
2007004 马六 1003

要求查询结果:

一班
张三
李四
二班
李四
三班
马六

现在的查询SQL:
Select classcode As code,'0' As parentcode,classname As name From Class
Union
Select code,classcode As parentcode,name From Student s,Class c Where s.classcode=c.classcode

问:由于数据较多,这样查询较慢,请问有没有更简洁,快速的SQL语句。谢

[解决办法]

SQL code
这样?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
[解决办法]
SQL code
  select classname , name = '' , classcode from class  union all  select classname = '', name , classcode from student  order by classcode,name
[解决办法]
不对,要多出一行。用来表示上下属关系

不只是关联查询

-------------------
如果你要显示这种层次关系,在oracle 有一个命令出来的结果就是这个样子的
[解决办法]
显示问题交给前台程序处理
[解决办法]
SQL code
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 行)*/ 

读书人网 >SQL Server

热点推荐