问个奇怪的JDataStore的问题,另送大家几本Struts的电子书
这两天用JDataStore写程序,现在有个SQL的查询问题一直不能解决,感觉非常奇怪。下面的Status表,Vocation表,Nationality表,Department表都存储的是一个数字和对应的中文,比如Department表中有如下数据:
1 计算机系
2 政法系
3 历史系
其它几个表也都是这样的结构。其中的数字的字段名是××Num,中文的字段名是×××Name。
但这样一句SQL查询语句:
select * from student, department, status,
desireinfo, nationality, vocation
where desireinfo.vocationnum=vocation.vocationnum
and student.id = desireinfo.id
and department.departmentnum = student.departmentnum
and student.nationalitynum = nationality.nationalitynum
and vocationname= '电子技术'
and student.statusnum = status.statusnum
在我的数据库里不能查到记录,但如果去掉最后一个and,变为:
select * from student, department, status,
desireinfo, nationality, vocation
where desireinfo.vocationnum=vocation.vocationnum
and student.id = desireinfo.id
and department.departmentnum = student.departmentnum
and student.nationalitynum = nationality.nationalitynum
and vocationname= '电子技术'
却可以查到记录。
增加and student.statusnum = status.statusnum是为了查找status的数字对应的中文(因为Student表中只存储数字),这个查找按理说和其它的Department,Nationality的查找是一模一样的。但一旦加了status就查不到。另外,上面的查找如果去掉前面的department.departmentnum = student.departmentnum搜索条件或去掉student.id = desireinfo.id而保留student.statusnum = status.statusnum也是可以查到的。我和同学研究了半天也不知道最上面那个查询查不到结果的原因,我们怀疑是不是JDataStore有多表连接查询的数量限制?:(
这个问题很是麻烦,如果不能解决,我们已经打算换一个数据库了。希望大家帮我看看这是怎么回事。
我用自己的机子开了个FTP,这个数据库文件大家可以从我机子上下载:
ftp://liuxy.kmip.net
这个JDataStore数据库可以使用JBuilder的JDataStore Explore工具打开,用户名密码均为ejob,在这个工具的Tools菜单下选SQL,就可以运行我上面的查询语句了。
在我的FTP上,我还放了几本很好的Struts电子书,有需要的朋友可以来下。ADSL带宽有限,放多了受不了。。。
问题点数:50、回复次数:1Top
1 楼panpan221(我是来学习的!)回复于 2004-05-04 15:04:34 得分 50
新手学习Top




