我在编写mysql查询时遇到了麻烦,我知道我可以通过迭代来做到这一点,但是我相信可以在单个查询中实现,我希望有人可以指出正确的方向。
我有一个注释表和一个用户表。 我通过修改评论表以包含回复的评论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
结构故障:
在单个查询或使用子选择中有可能吗?
这比遍历注释来检索答复好吗?
在此先感谢:-) !!