一个关于用VB操纵数据库的问题

有数据库.mdb的表1和表2,其内容如图:表1有字段:学分,姓名,课程表2有字段:学号,姓名,年龄现在想做的是:根据课程、年龄查出所对应的学分VB与数据库的连接我知道,但... 有 数据库.mdb 的表1和表2,其内容如图:
表1有字段:学分,姓名,课程
表2有字段:学号,姓名,年龄
现在想做的是:
根据 课程、年龄 查出所对应的学分
VB与数据库的连接我知道,但这个sql查询语句写不出……望各位朋友能帮忙,感激不尽!!
var_课程 and 年龄 = var_年龄
为什么要加 var_ 啊?
展开
 我来答
山文屋
2010-10-14 · TA获得超过172个赞
知道答主
回答量:76
采纳率:0%
帮助的人:35.4万
展开全部

首先我建议你更改你的数据库的表的设计:

建立三个表

表1

自增编号,学号,课程编号,学分

表2

学号,姓名,年龄

表3

课程编号,课程名称

为什么建立三个表呢?首先你想想,如果有一门课叫“高等数学”,而这门课只有一个学生上课 ,但是由于种种原因,这个学生退学了,然后这个学生的学号就删除,问题就来了,因为只有这个学生上了“高等数学”这门课,删除这个学生之后数据库里就没有“高等数学”这门课的信息了。

为什么表1中有自增编号?那是因为一个学生可以选择很多门课,为了保证数据库中关键字的唯一性而设计的。

LEFT JOIN返回”first_table”中所有的行尽管在” second_table”中没有相匹配的数据。 

RIGHT JOIN返回”second_table”中所有的行尽管在”first_table”中没有相匹配的数据。 

INNER JOIN返回的结果集是两个表中所有相匹配的数据。 

Table1为表1  Table2为表2  Table3为表3

根据设计的表写的语言

select 学分

from Table1 inner join Table2 on Table1.学号=Table2.学号 inner join Table3 on Table1.课程编号=Table3.课程编号

where Table1.学号=2 and 姓名='里斯' and 课程名称='英语'

下面是图

liuyx_know
2010-10-13 · TA获得超过425个赞
知道小有建树答主
回答量:506
采纳率:100%
帮助的人:408万
展开全部
你提供的表有问题,怎么表1没有学号的,要是学生的姓名相同怎么办。

另外你提供的查询也有问题,怎么会有这样的逻辑的,按课程,年龄进行查询的。

按你的要求,答案如下:
select
*
from 表1 a
inner join 表2 b on a.学号 = b.学号
where 课程 = var_课程 and 年龄 = var_年龄
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sowinwork
2010-10-14 · 超过29用户采纳过TA的回答
知道答主
回答量:81
采纳率:0%
帮助的人:70万
展开全部
一楼的思路是对的,但表1没有学号,除非另加,否则只能更正
更正一楼的,可以看出谁没有安排课程.
select
*
from 表1 a
right join 表2 b on a.姓名 = b.姓名
where 课程 = var_课程 and 年龄 = var_年龄
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式