关于SQL语句问题,高手请进,急!!

dybyun 2002-04-13 11:54:27
select class.studentnum,student.studentname from class,student where class.sutdentnum=student.number

class表中存的是学生的编号,在查询时,到student表中取学习姓名,这样存是对的。
如果class.studentnum 的值是空的,就不会取出结果了。
在用sysbase数据库时,如果是空可省略,就可以写成
select class.studentnum,student.studentname from class,student where class.sutdentnum*=student.number
那么在DB2数据库中应该怎么写?
谢谢!!!
...全文
106 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dybyun 2002-04-15
  • 打赏
  • 举报
回复
Andrawu谢谢你,好用了,以后还要多指教。
忽然觉得分给的少了点儿,下次多给点儿分儿
welcomegtm 2002-04-15
  • 打赏
  • 举报
回复
应该需要三个表
学生表();选课表();课程表();
原因如下:
学生选棵为m:n的关系,因此需要选课表进行连接!
Andrawu 2002-04-15
  • 打赏
  • 举报
回复
SELECT a.afield1, a.afield2, a.afield3, b.field1, c.field2,d.field1 FROM table1 a LEFT JOIN table2 b ON (a.field1 = b.field2) LEFT JOIN table3 c ON (a.field2=c.field1 AND a.field3 = b.field4 ), table4 d WHERE a.filed1 = '000001'
full join 和right join 类似,
join是可以联接多个表的,on是两个联接表中两个比较条件,可以是多个用and联接。
试试吧。


dybyun 2002-04-15
  • 打赏
  • 举报
回复
楼上的朋友先谢谢你,这样我试过了,好使,但只是两个表好使,如果from后面是多表怎么办呀???我就不会写了!!!
Andrawu 2002-04-14
  • 打赏
  • 举报
回复
select c.studentnum,s.studentname from class c full join student s on c.studentnum=s.number
不管表student、class中编号哪个有空都将显示出来。
select c.studentnum,s.studentname from class c left join student s on c.studentnum=s.number
将保留class表的记录,如果student表中的记录编号为空
select c.studentnum,s.studentname from class c right join student s on c.studentnum=s.number
将保留student表的记录,如果class表中的记录编号为空

试试看。
dybyun 2002-04-13
  • 打赏
  • 举报
回复
不是不可用,是这样写以后,class.studentnum为空的这条记录就不会查询出来了,我还想让它出来!!!!
可乐加水 2002-04-13
  • 打赏
  • 举报
回复
select class.studentnum,sudent.studentname from class,student where
class.studentnum=student.number仍然可用,我试过了,db2 7.1

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧