关于SQL三表联合查询 15
//执行SQL联合查询publicvoidlist(){try{Connectionconn=getConnection();Statementstm=c...
//执行SQL联合查询
public void list()
{
try
{
Connection conn = getConnection();
Statement stm = conn.createStatement();
String sql = "SELECT student.Snum,student.sName,ST.courseNum,teacher.tName ,ST.score FROM student,teacher,ST WHERE sName LIKE'%林可%'";
ResultSet rs = stm.executeQuery(sql);
while (rs.next())
{
String Snum = rs.getString("Snum");
String sName = rs.getString("sName");
String courseNum = rs.getString("courseNum");
String tName = rs.getString("tName");
String score = rs.getString("score");
System.out.println(Snum + "\t" + sName + "\t" + courseNum
+ "\t" + tName+"\t"+score);
}
问题:
String sql = "SELECT student.Snum,student.sName,ST.courseNum,teacher.tName ,ST.score FROM student,teacher,ST WHERE sName LIKE'%林可%'"; 这一句无论以哪种方式修改WHERE后面的代码,嵌套、IN等等,都不显示结果,但去掉WHERE的范围限制执行又可以成功。是什么原因呢?
注:catch后面的部分没贴上来,不必考虑这个细节的哈O(∩_∩)O 展开
public void list()
{
try
{
Connection conn = getConnection();
Statement stm = conn.createStatement();
String sql = "SELECT student.Snum,student.sName,ST.courseNum,teacher.tName ,ST.score FROM student,teacher,ST WHERE sName LIKE'%林可%'";
ResultSet rs = stm.executeQuery(sql);
while (rs.next())
{
String Snum = rs.getString("Snum");
String sName = rs.getString("sName");
String courseNum = rs.getString("courseNum");
String tName = rs.getString("tName");
String score = rs.getString("score");
System.out.println(Snum + "\t" + sName + "\t" + courseNum
+ "\t" + tName+"\t"+score);
}
问题:
String sql = "SELECT student.Snum,student.sName,ST.courseNum,teacher.tName ,ST.score FROM student,teacher,ST WHERE sName LIKE'%林可%'"; 这一句无论以哪种方式修改WHERE后面的代码,嵌套、IN等等,都不显示结果,但去掉WHERE的范围限制执行又可以成功。是什么原因呢?
注:catch后面的部分没贴上来,不必考虑这个细节的哈O(∩_∩)O 展开
5个回答
展开全部
是oracle数据库的写法吧,语句如下
String sql = "SELECT student.Snum,student.sName,ST.courseNum,teacher.tName ,ST.score FROM student,teacher,ST WHERE student.sName LIKE'%林可%'";
先用 plsqldev看下直接用语句查出的结果。结果没问题,就是代码有问题了
String sql = "SELECT student.Snum,student.sName,ST.courseNum,teacher.tName ,ST.score FROM student,teacher,ST WHERE student.sName LIKE'%林可%'";
先用 plsqldev看下直接用语句查出的结果。结果没问题,就是代码有问题了
更多追问追答
追问
是MySQL数据库。你这样的修改的我也试过的,也是不行的。麻烦再想想?我刚学数据库的东西,plsqldev是什么呢?我觉得代码没问题啊..
追答
String sql = "SELECT student.Snum,student.sName,ST.courseNum,teacher.tName ,ST.score FROM student,teacher,ST WHERE student.sName LIKE '%林可%'";
like 后面要用空格
莱伯泰科
2024-10-28 广告
2024-10-28 广告
LabTech Group,即北京莱伯泰科仪器股份有限公司,是业界领先的实验室科学仪器与解决方案提供商。我们专注于分析测试仪器的研发、生产和销售,致力于为全球科研工作者、高校及企业实验室提供高性能、高稳定性的产品与服务。通过持续的技术创新与...
点击进入详情页
本回答由莱伯泰科提供
展开全部
student.sName LIKE '%林可%'这里你加上表名吧,还有看看你被赋值后的sql语句在数据库中查询结果有没有。如果不吃以外应该就没问题了.
追问
数据库里的东西确定是对的,有对应的关联信息可查..纠结..
追答
你没有看看sql语句被赋完值后的样子?拿到数据库中可以执行吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
语句错误from student inner join ST on(两表的关系student._=ST.) inner join teacher on(teacher._=ST.) where student.sName like注意大小写
追问
这是什么写法??看不懂..语句错误?可去掉WHERE限定能够执行的呀。你这跟SQL查询语句完全不相关了吧?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该把表间的关系写出来吧!就像 用left join 必须写 on 一样吧!
追问
三个表结构和数据关联关系没问题的,不知道你要说的是什么?这条语句去掉WHERE限定是可以执行的..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
同意楼上的,如果查不到结果就是数据问题了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询