mysql 帖子和回复SQL查询

apeeds0o  于 2022-11-21  发布在  Mysql
关注(0)|答案(4)|浏览(142)

我有两张table

post Table
 post_id
 post_name
 post_summary
 date

post_reply Table
 parent_id
 post_id

因此,我所做的是在post表中插入一个新的post详细信息,如果该post有任何回复,则我将所有详细信息放入post表本身,并将主post id存储为parent_id,将回复的post id存储为post_reply中的post_id。
现在我想获取所有的帖子和他们的回复下的主要职位,如果有任何,并希望显示在我的jsp页面相同。
我无法编写一个查询来获取这些细节,我可以先获取所有ID不在post_reply中的帖子,然后对所有帖子进行循环,然后逐个获取主帖子和回复帖子。
我只是想在一个查询中获取所有这些。这可能吗?我使用mysql作为数据库,并使用springmvc和mybatis。所以我正在获取整个列表,并把它放在我的模型属性中,并在jsp页面上显示它。
如果有人能建议我一个更好的方法来实现这一点,如改变我的数据库结构或任何其他解决方案,那么这将是伟大的。

cl25kdpy

cl25kdpy1#

桌 柱

+---------+-------+---------+
| post_id | post  | comment |
+---------+-------+---------+
|       1 | kjasd | ajsdh   |
|       2 | abc   | dfgdfg  |
|       3 | ashdf | NULL    |
+---------+-------+---------+

中 的 每 一 个
表 post _ reply

+-----------+---------+
| parent_id | post_id |
+-----------+---------+
|         1 |       2 |
+-----------+---------+

格式
使用 下面 的 查询 它 是 有效 的 :

select *from post where post_id=1 or post_id in (select post_id from post_reply where parent_id=1);

格式
只有 在 没有 回复 的 情况 下 , 才会 返回 带有 父 帖子 和 父 帖子 的 回复 。

prdp8dxp

prdp8dxp2#

您想要将两个数据表链接在一起。
例如,

SELECT     *
FROM       post
INNER JOIN post_reply 
ON         post.post_id = post_reply.post_id

从你的问题中,我不确定你到底想要什么,但是如果这没有达到你想要的效果,你可能需要使用GROUP BY。

ibps3vxo

ibps3vxo3#

我认为这是一个相当简单的连接查询,可以做到这一点。

SELECT * FROM post pt JOIN (post_reply pr) ON pr.parent_id = pt.post_id

然后在PHP中循环遍历结果,如下所示

while($row = mysql_fetch_array($your_query)) {
  $parent_id = $row['post_id'];
  $reply_id = $row['post_id'];
  $content = $row['post_summary'];
}

然后,您可以根据上面的详细信息构建回复表

wpx232ag

wpx232ag4#

从STATION查询CITY名称清单,找出ID号码为偶数的城市。以任何顺序打印结果,但排除答案中的重复项目。STATION表格说明如下:
Station.jpg
答案
从mod(id,2)= 0的站点选择不同的城市;

相关问题