我在编写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:-) !!
暂无答案!
目前还没有任何答案,快来回答吧!