连接查询

wolflove23 2008-01-07 04:41:01
初学SQL SERVER 2000 有个问题请教一下:
表A学生的基本信息
学号 姓名 年龄 等等吧
001 张三 20
002 李四 21
另一张表放成绩表
学号 科目 分数
001 语文 90
001 数学 95
002 语文 86
002 数学 87
现在我想列出一张表,内容是
学号 姓名 科目 分数
001 张三 语文 90
001 张三 数学 95
002 李四 语文 86
002 李四 数学 87



该如何建立查询呢?
...全文
105 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wlzd3636 2008-01-07
  • 打赏
  • 举报
回复
怎么发图片 请教下?
wlzd3636 2008-01-07
  • 打赏
  • 举报
回复

declare @t1 table(id varchar(50) , name varchar(50) , age int check( age >0))
declare @t2 table(id varchar(50) ,opject varchar(50), marker int check(marker >=0))
insert into @t1 values('001','张三',20)
insert into @t1 values('002','李四',21)
insert into @t2 values('001','语文',90)
insert into @t2 values('001','数学',95)
insert into @t2 values('002','语文',86)
insert into @t2 values('002','数学',87)
select x.id ,x.name, x1.opject , x1.marker from @t1 x inner join @t2 x1 on x.id=x1.id

刚毕业请老鸟指教 -----菜菜鸟
wzy_love_sly 2008-01-07
  • 打赏
  • 举报
回复
只要你用sql就对
wolflove23 2008-01-07
  • 打赏
  • 举报
回复
我在asp 也可以这样写吗?
dobear_0922 2008-01-07
  • 打赏
  • 举报
回复
create table A(学号 varchar(4),姓名 varchar(8),年龄 int)
insert A select '001','张三',20
insert A select '002','李四',21
create table 成绩表(学号 varchar(4),科目 varchar(6),分数 int)
insert 成绩表 select '001','语文',90
insert 成绩表 select '001','数学',95
insert 成绩表 select '002','语文',86
insert 成绩表 select '002','数学',87

select A.学号,姓名,科目,分数
from A join 成绩表 on A.学号=成绩表.学号

/*
学号 姓名 科目 分数
---- -------- ------ -----------
001 张三 语文 90
001 张三 数学 95
002 李四 语文 86
002 李四 数学 87

(4 row(s) affected)
*/

drop table A,成绩表
wzy_love_sly 2008-01-07
  • 打赏
  • 举报
回复
declare @tb1 table (学号 varchar(10),姓名 varchar(10),年龄 int)
insert into @tb1 select '001','张三',20
insert into @tb1 select '002','李四',21

declare @tb2 table (学号 varchar(10),科目 varchar(10),分数 int)
insert into @tb2 select '001','语文',90
insert into @tb2 select '001','数学',95
insert into @tb2 select '002','语文',86
insert into @tb2 select '002','数学',87

select a.学号,a.姓名,b.科目,b.分数
from @tb1 a join @tb2 b on a.学号=b.学号


学号 姓名 科目 分数
001 张三 语文 90
001 张三 数学 95
002 李四 语文 86
002 李四 数学 87
-狙击手- 2008-01-07
  • 打赏
  • 举报
回复
declare @ta table(学号 varchar(4),姓名 varchar(8),年龄 int)
insert @ta select '001','张三',20
insert @ta select '002','李四',21
declare @tb table(学号 varchar(4),科目 varchar(6),分数 int)
insert @tb select '001','语文',90
insert @tb select '001','数学',95
insert @tb select '002','语文',86
insert @tb select '002','数学',87

select a.姓名,b.*
from @ta a,@tb b
where a.学号 = b.学号

select a.姓名,b.*
from @ta a
full join @tb b on a.学号 = b.学号


select a.姓名,b.*
from @ta a
left join @tb b on a.学号 = b.学号


select a.姓名,b.*
from @ta a
right join @tb b on a.学号 = b.学号
/*
姓名 学号 科目 分数
-------- ---- ------ -----------
张三 001 语文 90
张三 001 数学 95
李四 002 语文 86
李四 002 数学 87

姓名 学号 科目 分数
-------- ---- ------ -----------
张三 001 语文 90
张三 001 数学 95
李四 002 语文 86
李四 002 数学 87

姓名 学号 科目 分数
-------- ---- ------ -----------
张三 001 语文 90
张三 001 数学 95
李四 002 语文 86
李四 002 数学 87

姓名 学号 科目 分数
-------- ---- ------ -----------
张三 001 语文 90
张三 001 数学 95
李四 002 语文 86
李四 002 数学 87


*/
pt1314917 2008-01-07
  • 打赏
  • 举报
回复

表A学生的基本信息
学号 姓名 年龄 等等吧
001 张三 20
002 李四 21
另一张表放成绩表
学号 科目 分数
001 语文 90
001 数学 95
002 语文 86
002 数学 87

-----------------------
select a.学号,姓名,科目,分数 from 表A a,表B b where a.学号=b.学号
dobear_0922 2008-01-07
  • 打赏
  • 举报
回复
或者用:
select 成绩表.学号,姓名,科目,分数
from A right join 成绩表 on A.学号=成绩表.学号
-狙击手- 2008-01-07
  • 打赏
  • 举报
回复
select a.姓名,b.*
from 成绩表 a,学生的基本信息 b
where a.学号 = b.学号
dobear_0922 2008-01-07
  • 打赏
  • 举报
回复
select A.学号,姓名,科目,分数
from A join 成绩表 on A.学号=成绩表.学号

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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