如何根据条件从多个表中进行选择

时间:2017-06-17 11:56:11

标签: java sql activejdbc javalite

我有两张桌子:

帖子表:

+-----+------------+--------------+
| id  |   title    |   details    |
+-----+------------+--------------+
| 185 | some title | some details |
| 186 | some title | some details |
+-----+------------+--------------+

发布类别:

+----+------------+---------+
| id |  category  | post_id |
+----+------------+---------+
|  1 | some title |     185 |
|  2 | some title |     186 |
+----+------------+---------+

当用户点击类别时,我希望根据所选类别获取post table的所有帖子。

我可以像这样选择categorypost_id

List<Map> postCategories2 = Base.findAll("select category, post_id from posts_categories where category = ?", request.queryParams("category_name"));

但我想要的是使用单个查询,并使用表2中的id, title, detailspost table选择category and post_idcategory table

我所拥有的所有信息都是类别名称,即request.queryParams("category_name")

注意:id and post_id具有主键 - 外键关系

1 个答案:

答案 0 :(得分:1)

我认为你必须使用连接 用此查询替换您的查询

select title,details,category from post p inner join posts_categories c on 
 p.id=c.post_id where category= ?//your category name at the question mark

希望这会有所帮助