这个语句怎么写?
我要查询学生的选课信息,返回选修某个课程的学生姓名和课程名称,不过选课表只有学生id,学生姓名在另一个表中,我怎么才可以有一条语句完成这个功能啊?谢谢 问题点数:20、回复次数:16Top
1 楼ATCG(novel gene)回复于 2002-10-11 15:17:52 得分 20
A表只有id
B表有姓名,但也要有相应的字段能和A表对应起来,如id
select a.id,b.name from a,b where a.id=b.id;Top
2 楼jiezhi(风满袖)回复于 2002-10-11 15:24:07 得分 0
select name,subject from t_student stu,t_subject sub
where stu.id=sub.idTop
3 楼f_ky(毛蛋哥哥)回复于 2002-10-11 15:26:03 得分 0
table1表:ID,name, ...
tble2表:ID,kecheng, ...
select a.name, b.kecheng from table1 a,table2 b
where a.ID = b.ID;Top
4 楼ljfppp(刘三疯)回复于 2002-10-11 16:06:01 得分 0
我要返回的数据可能是多条的,怎么样使这多条的std_id和std_name分别对应啊?Top
5 楼zuoyexingchen(昨夜星尘)回复于 2002-10-11 16:39:10 得分 0
table1表:学生ID,姓名,……
table2表:学生ID,课程,……
Select a.姓名, b.课程 from table1 a,table2 b
where a.学生ID = b.课程 (+)
Top
6 楼ATCG(novel gene)回复于 2002-10-11 16:40:36 得分 0
你最好把表数据列出来Top
7 楼ljfppp(刘三疯)回复于 2002-10-11 16:50:02 得分 0
选课表:
course_id course_name std_id
学生信息表:
std_id std_name .........
我现在要想得到选course_id=1的所有学生的姓名(即std_name)和与之对应的course_name,怎么做?谢谢Top
8 楼ATCG(novel gene)回复于 2002-10-11 17:03:38 得分 0
看来你对SQL很陌生,这是一个很基本的SQL语句。
select a.std_name,b.course_name
from 学生信息表 a,选课表 b
where b.course_id=1 and b.std_id=a.std_id;Top
9 楼ljfppp(刘三疯)回复于 2002-10-11 17:18:13 得分 0
从这句语句中怎么样看出数据项的对应关系那?会不会这个学生的姓名对应到另外一个学生的课程上去?谢谢Top
10 楼ATCG(novel gene)回复于 2002-10-11 17:30:06 得分 0
不会的!
在学生信息表里 std_id 肯定是唯一的,
在选课表里面,同一个std_id可以有多个course_id
即:
std_id course_id
123 1
123 2
123 3
因此 std_id和course_id相加是唯一的Top
11 楼ljfppp(刘三疯)回复于 2002-10-11 17:53:12 得分 0
呵呵l,楼上说的不行,这样只能读出数据库里的第一条数据Top
12 楼ljfppp(刘三疯)回复于 2002-10-11 17:57:33 得分 0
我要的到的效果是:
std_id course_id std_name
1 1 heh
2 1 hello
3 1 kkddTop
13 楼ATCG(novel gene)回复于 2002-10-11 19:47:00 得分 0
To: ljfppp(点到点)
你怎么知道我说的不行啊,你试过我的SQL语句了吗???????????
我只是列举了一个学生的情况,所以只能查到一条记录.你的表里当然
不会只有一个学生了,因此你用我的SQL语句可以满足你的要求!!!!!!
我说你对数据库没有什么概念, 也不懂SQL.不过只要多实践,会长进很快的.Top
14 楼ATCG(novel gene)回复于 2002-10-11 19:56:06 得分 0
如果你的表结构和表记录是这样的,那么我刚才说的SQL语句若不能达到你的要求,你再来找我!!!!!!!!!!!!!!!!!!!!!!!!!!!
select a.std_name,b.course_name
from 学生信息表 a,选课表 b
where b.course_id=1 and b.std_id=a.std_id;
学生信息表 选课表
std_id std_name std_id course_id course_name
1 猪八戒 1 1 数学
2 孙悟空 1 2 语文
3 沙和尚 1 3 英语
2 1 数学
2 2 语文
2 3 英语
3 1 数学
3 2 语文
3 3 英语Top
15 楼feeling_68(随风)回复于 2002-10-12 00:23:11 得分 0
选课表:
course_id course_name std_id
学生信息表:
std_id std_name .........
select a.std_name,b.course_name
from 学生信息表 a,选课表 b
where b.course_id=1 and b.std_id=a.std_id;
有错吗?我们以前学vf的时候就是这样写的,我和ATCG(ATCG) 同志的想法一致Top
16 楼ljfppp(刘三疯)回复于 2002-10-12 08:42:29 得分 0
"SELECT std_info.user_name,std_course.course_id,std_course.course_name FROM std_info,std_courseWHERE std_info.user_id=std_course.user_id AND std_course.course_id=1
我写的语句就是这样的,和ATCG的有什么不同,高手指点。比如在course_table中有多个人选了course_id=1的课程,可是如果按照我写的语句就只能选出第一条数据。谢谢Top




