CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Oracle >  基础和管理

这个语句怎么写?

楼主ljfppp(刘三疯)2002-10-11 15:13:17 在 Oracle / 基础和管理 提问

我要查询学生的选课信息,返回选修某个课程的学生姓名和课程名称,不过选课表只有学生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

相关问题

  • 这个语句怎么写?
  • 这个语句怎么写?
  • 这个语句怎么写?
  • 这个语句怎么写?
  • 这个语句怎么写?
  • 怎么写这个语句
  • 这个语句怎么写?
  • 这个Sql语句怎么写?
  • 这个sql语句怎么写??谢谢
  • 、这个sql语句怎么写?

关键词

  • 语句
  • 学生
  • 课程
  • sql
  • 数学
  • 数据
  • 信息
  • course
  • std
  • 选课表

得分解答快速导航

  • 帖主:ljfppp
  • ATCG

相关链接

  • Oracle类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo