首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

连回3贴都是错的(不能继续发回复了),只能在这儿重开一贴把小弟我觉得正确的补上

2012-03-22 
连回3贴都是错的(不能继续发回复了),只能在这儿重开一贴把我觉得正确的补上原贴内容:目前碰到一个查询不会

连回3贴都是错的(不能继续发回复了),只能在这儿重开一贴把我觉得正确的补上
原贴内容:

目前碰到一个查询不会写,表结构是这样的

表A Id Name
1 李三
2 小明
3 林明
表B Id 表AID content grade
1 1 钢琴 二级
2 1 英语 一级
3 2 骑马 一级
4 3 英语 三级
5 3 数学 三级
6 3 钢琴 五级
7 1 骑马 一级

想查询出同时拥有 钢琴二级和英语一级的同学姓名,查询语句如何写呢?


查询结果

Name content grade
李三 钢琴 二级
李三 英语 一级


补充回复:

见一楼

[解决办法]
这句有什么问题?

SQL code
if(OBJECT_ID('a') is not null) drop table aGOcreate table a (Id int, name varchar(10))insert into a values(1, '李三')insert into a values(2, '小明')insert into a values(3, '林明')if(OBJECT_ID('[b]') is not null) drop table bGOcreate table b (Id int,AID int,content varchar(10), grade varchar(10))insert into b values(1 ,1 ,'钢琴', '二级')insert into b values(2 ,1 ,'英语', '一级')insert into b values(3 ,2 ,'骑马', '一级')insert into b values(4 ,3 ,'英语', '三级')insert into b values(5 ,3 ,'数学', '三级')insert into b values(6 ,3 ,'钢琴', '五级')insert into b values(7 ,1 ,'骑马', '一级')insert into b values(8,2,'英语', '一级')insert into b values(9,2,'钢琴', '二级')goselect t1.name,t2.content,t2.gradefrom a t1 join b t2 on t1.id=t2.aidwhere exists(select 1 from b where content='钢琴' and grade='二级' and aid=t2.aid)and exists(select 1 from b where content='英语' and grade='一级' and aid=t2.aid)and t2.content in ('钢琴','英语')go/*name       content    grade      ---------- ---------- ---------- 李三         钢琴         二级李三         英语         一级小明         英语         一级小明         钢琴         二级(所影响的行数为 4 行)*/
[解决办法]
每次都得等着Google的广告load完成。
[解决办法]

[解决办法]
探讨
想查询出同时拥有 钢琴二级和英语一级的同学姓名,查询语句如何写呢?……

查询结果

Name content grade
李三 钢琴 二级
李三 英语 一级

[解决办法]
帮顶。

热点排行