关于SQL的,两表查询

来源:百度知道 编辑:UC知道 时间:2024/05/17 03:16:21
表A
编号,姓名,性别,语文,数学,英语
0001,张三, 男, 01, 03, 04
0002,李四, 女, 04, 01, 03

表B
状态编号,状态
01,合格
02,不合格
03,未考
04,补考

求SQL语句,查询集
得下结果:

编号,姓名,性别,语文,数学,英语
0001,张三, 男,合格,未考,补考
0002,李四, 女,补考,合格,未考
--------------------
求SQL语句,得下结果:
编号,姓名,性别,语文,数学,英语
0001,张三,男,01:合格,03:未考,04:补考
0002,李四,女,04:补考,01:合格,03:未考
-------------------
不用更新.

-------------------
一楼的不行:用你那种方法只是得出笛卡尔集
二楼的可行

select a.编号,a.姓名,a.性别,
b.状态 as 语文,
c.状态 as 数学,
d.状态 as 英语
from 表A a,表B b,表B c,表B d
where a.语文=b.状态编号 and
a.语文=c.状态编号 and
a.语文=d.状态编号
补充问题答案:
select a.编号,a.姓名,a.性别,
b.状态编号+':'+b.状态 as 语文,
c.状态编号+':'+c.状态 as 数学,
d.状态编号+':'+d.状态 as 英语
from 表A a,表B b,表B c,表B d
where a.语文=b.状态编号 and
a.语文=c.状态编号 and
a.语文=d.状态编号
补充问题答案里“+”是access和SQL Server的表示方法,oracle的表示方法是把“+”换成“||”就是shift+"\"的那个字符,两个长冒号。

创建一个视图,添加A、B表选择*号(全部显示)