sql动态查询问题
表A
Grade id
高一 1
高二 2 grade是年级 id是年级编号
高三 3
表B
lessonsID lessonName FenKe gradeID
101 语文 0 01
102 数学 0 01
103 英语 0 01
104 物理 0 01
105 地理 0 01
201 语文 0 02 lessonid是课程编号
202 文数 1 02 lessonname是课程名称
203 理数 2 02 fenke表示是否分科,0-公共科,1-理科,2-文科
204 政治 2 02 gradeid是年级编号,与表A字段意义相同但字段名不同
205 物理 1 02
301 语文 0 03
302 文数 1 03
303 理数 2 03
304 化学 1 03
305 地理 2 03
要求动态实现:3级联动菜单,所有数据从库中查出
第一级显示出年级 第二级显示出分科(若选择高一则只有公共科) 第三级显示出相应课程课程
-----------------------------------
不知道说的是否清楚,有疑问的请大家联系我
[解决办法]
- SQL code
create table tb1(Grade varchar(10) , id int)insert into tb1 values('高一' , 1) insert into tb1 values('高二' , 2)insert into tb1 values('高三' , 3)create table tb2(lessonsID int, lessonName varchar(10) , FenKe int, gradeID varchar(10))insert into tb2 values(101 , '语文' , 0 , '01') insert into tb2 values(102 , '数学' , 0 , '01') insert into tb2 values(103 , '英语' , 0 , '01') insert into tb2 values(104 , '物理' , 0 , '01') insert into tb2 values(105 , '地理' , 0 , '01') insert into tb2 values(201 , '语文' , 0 , '02')insert into tb2 values(202 , '文数' , 1 , '02')insert into tb2 values(203 , '理数' , 2 , '02')insert into tb2 values(204 , '政治' , 2 , '02')insert into tb2 values(205 , '物理' , 1 , '02') insert into tb2 values(301 , '语文' , 0 , '03') insert into tb2 values(302 , '文数' , 1 , '03') insert into tb2 values(303 , '理数' , 2 , '03') insert into tb2 values(304 , '化学' , 1 , '03') insert into tb2 values(305 , '地理' , 2 , '03') goselect m.grade , m.id , n.lessonsid , n.lessonname , case n.fenke when 0 then '公共科' when 1 then '理科' when 2 then '文科' end fenke from tb1 m , tb2 n where m.id = cast(n.gradeid as int) order by m.id , n.lessonsid drop table tb1,tb2/*grade id lessonsid lessonname fenke ---------- ----------- ----------- ---------- ------ 高一 1 101 语文 公共科高一 1 102 数学 公共科高一 1 103 英语 公共科高一 1 104 物理 公共科高一 1 105 地理 公共科高二 2 201 语文 公共科高二 2 202 文数 理科高二 2 203 理数 文科高二 2 204 政治 文科高二 2 205 物理 理科高三 3 301 语文 公共科高三 3 302 文数 理科高三 3 303 理数 文科高三 3 304 化学 理科高三 3 305 地理 文科(所影响的行数为 15 行)*/