mysql查询来检索评论和回复

cbwuti44  于 2021-06-15  发布在  Mysql
关注(0)|答案(0)|浏览(188)

我在编写mysql查询时遇到了问题,我知道我可以通过迭代来完成,但是我相信它可以在一个查询中实现,我希望有人能为我指明正确的方向。
我有一个评论表和一个用户表。我通过修改comment表来添加“回复评论”功能,以包含回复评论的id。
数据结构:

`comments`
  (`i` int(5) NOT NULL AUTO_INCREMENT
  ,`id` int (5) NOT NULL
  ,`deleted` tinyint NULL
  ,`articleId` int (5) NOT NULL
  ,`userId` VARCHAR (200) NOT NULL
  ,`comment` VARCHAR (2000) NOT NULL
  ,`replyTo` int (5) NULL
  ,`knownFrom` datetime NOT NULL
  ,`knownTo` datetime NOT NULL

'users'
  (`i` int(5) NOT NULL AUTO_INCREMENT
  ,`id` VARCHAR (200) NOT NULL
  ,`deleted` tinyint NULL
  ,`name` VARCHAR (200) NOT NULL
  ,`email` VARCHAR(200) NOT NULL
  ,`knownFrom` datetime NOT NULL
  ,`knownTo` datetime NOT NULL

目前,我正在使用以下查询检索注解:

SELECT 
c.id, c.articleId, c.userId, c.comment, c.replyTo, u.name, c.knownFrom 
FROM `comments` c 
INNER JOIN `users` u ON c.userId=u.id 
WHERE 
c.`articleId` = :articleId 
AND c.`deleted` IS NULL 
AND c.`knownTo` = '9999-12-31 23:59:59' 
AND u.`knownTo` = '9999-12-31 23:59:59'

如何检索此格式的数据?

c.id    c.articleId    c.userId    c.comment    c.replyTo    u.name    c.knownFrom
 1           1             1        comment       null       user1       date
 2           1             2         reply         1         user2       date
 3           1             3         reply         1         user4       date
 4           1             4        comment       null       user3       date
 5           1             5        comment       null       user5       date

结构分解:
检索文章的所有注解。
首先检索非回复的注解,其中“repliedto”列为null。
回复跟随带有相应id的注解。
这在单个查询或使用子选择中是可能的吗?
这比在评论上迭代来检索回复好吗?
非常感谢advance:-) !!

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题