数据库里有两张表:表1(语文)姓名 语文
陈一 60
谢二 70
张三 80
李四 90
表2(数学)姓名 数学
谢二 70
张三 80
李四 90现在,想生成这样的报表:
姓名 语文 数学
陈一 60 (因为数学表里没有他的记录,所以为空)
谢二 70 70
张三 80 80
李四 90 90请问:sql语句应该怎么来写?或者用VB应该怎么来解决?谢谢。。
(注:因工作关系不可更改表结构)
陈一 60
谢二 70
张三 80
李四 90
表2(数学)姓名 数学
谢二 70
张三 80
李四 90现在,想生成这样的报表:
姓名 语文 数学
陈一 60 (因为数学表里没有他的记录,所以为空)
谢二 70 70
张三 80 80
李四 90 90请问:sql语句应该怎么来写?或者用VB应该怎么来解决?谢谢。。
(注:因工作关系不可更改表结构)
from 表1,表2
where 表1.姓名=表2.姓名
UNION
SELECT A.姓名,A.语文,B.数学 FROM 表1 A INNER JOIN 表2 B ON A.姓名=B.姓名
WHERE B.姓名 IS NULL
UNION
SELECT A.姓名,A.语文,B.数学 FROM 表1 A INNER JOIN 表2 B ON A.姓名=B.姓名
这句看不懂,是什么意思?
有更简洁的吗?
UNION
SELECT A.姓名,A.语文,B.数学 FROM 表1 A INNER JOIN 表2 B ON A.姓名=B.姓名
====================
同意!
select SELECT A.姓名,A.语文,B.数学 FROM A,B where A.姓名*=B.姓名
试试吧
select 表1.姓名,语文,表2.数学 from 表1 left join 表2 on 表1.姓名= 表2.姓名
from 表1,表2
where 表1.姓名=表2.姓名
http://community.csdn.net/Expert/topic/3249/3249903.xml?temp=.8575556
from 表1,表2
where 表1.姓名=表2.姓名
这样就OK
1
1 张1 科目1 20
2 张1 科目2 20
3 张1 科目3 20
4 张2 科目1 20
如何实现下面方式显示:ID,Name, 总成绩(各科目成绩和),科目1成绩,科目2成绩,科目3成绩
1 张1 20 20 20
4 张2 20 20 20
left join 表1 b where a.name=b.name
left join 表2 c where a.name=c.name
select a.姓名,b.語文,c.數學
from (select 姓名 from 表1 union select 姓名 from 表2) a
left join 表1 b on a.姓名=b.姓名
left join 表2 c on a.姓名=c.姓名