mysql数据库中两个表相关联

try{ct=newConnDB().getConn();ps=ct.prepareStatement("select*fromnewswhereclassId=(sel... try {
ct = new ConnDB().getConn();
ps = ct.prepareStatement("select * from news where classId = (select classId from newsclass where className = ?) limit ?");
ps.setString(1, newsClass);
ps.setInt(2, num);
rs=ps.executeQuery();
这是我的sql语句,每次执行查询结果都是空的,但是吧sql语句改成"select * from news where classId = 5 limit ?"就可以查出结果.请教一下是为什么,我是用navicat建的表。news和newsclass两个表都有。
好像是说两个表要关联起来的,但是这两个表确实是关联的,newsclass的主键classId是news的外键。
展开
 我来答
GUOYYYY
2014-03-28 · TA获得超过521个赞
知道小有建树答主
回答量:506
采纳率:0%
帮助的人:282万
展开全部
联表查询尽量用join关联。

sql语句没有看出来错误,没有结果应该是className 确实没有=的。
clman1024
2014-03-27 · TA获得超过2181个赞
知道答主
回答量:403
采纳率:25%
帮助的人:207万
展开全部
把第一个=换成in试试
更多追问追答
追问
还是为空呢,我觉得我的代码没有问题,但是数据库我不懂,表是别人弄的,我就怀疑表有问题。就想问问一个sql语句里牵扯到两个表是不是在建表的时候又什么特殊的操作,如数说外键啊什么的。
追答
关键是?代表什么呢?
你的className里面有?这个名字么?如果没有就 把?换成一个可以在数据库中找到的值试试,看看sql有没有问题,如果已经验证sql没有问题,那么就去找做数据库的人,让他去解决数据库的问题,你的外键关系目前看来没问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式