当前位置:编程学习 > JAVA >>

java里怎么实现sql嵌套查询

比如我的
A表是at,点名表:存得时点名的微博的id,被点到的人。
B表是Microblog,是微博表:存的是微博的id,内容等。
我现在想给出一个人名,找出对他点名的所有微博。
我是这样写的:
public ArrayList<Blog> getBlogs_atme(String user) {
ArrayList<Blog> blogs = new ArrayList<Blog>();
String sqlstr = "select * from [microblog].[dbo].[Microblog] where [id] in '" + 
"select microblog_id" + " from [microblog].[dbo].[at] where [person] = '" + user + "'" + "'" + "order by [time] desc";
ResultSet rs = null;

try {
rs = stmt.executeQuery(sqlstr);
while (rs.next()) {
Blog t = rs2Blog(rs);
blogs.add(t);
}
} catch (SQLException e) {
e.printStackTrace();
}
return blogs;
}

但是运行时说有语法错误,应该就是嵌套查询那。请大家指导要怎么改~谢谢了! --------------------编程问答-------------------- select * from at a
left join Microblog  b
on a.Microblog.id = b.id
where a.person like '%"+ user +"%'

--------------------编程问答-------------------- ArrayList<Blog> blogs = new ArrayList<Blog>();
String sqlstr = "select [Microblog].[id],[Microblog].[user],[Microblog].[body],[Microblog].[time],[Microblog].[type]" 
+"from [microblog].[dbo].[Microblog],[microblog].[dbo].[at]"
+"where [Microblog].[id]=[at].[microblog_id] & [at].[person] = '" + user + "'"
+ "order by [time] desc";
ResultSet rs = null;
这样写对吗?
希望各位大神提供潜入在java里的代码,直接用sql写就很简单了~ --------------------编程问答--------------------
引用 1 楼 gmogle 的回复:
select * from at a
left join Microblog b
on a.Microblog.id = b.id
where a.person like '%"+ user +"%'


是的,用这样两表关联查询,,但是LZ你还要写一个方法的,你页面传进去的数据是name,你要写一个方法,根据name查询对应的id,再用id,两表关联查询微博
--------------------编程问答--------------------

JAVA里面 不还是SQL吗 --------------------编程问答-------------------- 谢谢大家,已经解决了。
String sqlstr = "select * from [microblog].[dbo].[Microblog]" + "where [id] in (SELECT [microblog_id]"
+ "FROM [microblog].[dbo].[at]" + "where [person] = '" + user + "')" 
+ "order by [time] desc";
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,