首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将限制应用于查询中类似于表的父/子树

如何将限制应用于查询中类似于表的父/子树
EN

Stack Overflow用户
提问于 2011-12-16 05:19:08
回答 1查看 303关注 0票数 1

下面是表结构:

代码语言:javascript
复制
CREATE TABLE `message` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `uid` int(11) NOT NULL,
  `from_uid` int(11) NOT NULL,
  `content` varchar(300) NOT NULL,
  `parent` int(11) DEFAULT NULL,
  `create_time` datetime NOT NULL,
  PRIMARY KEY (`id`),
  KEY `uid` (`uid`),
  KEY `from_uid` (`from_uid`),
  KEY `parent` (`parent`),
  CONSTRAINT `message_ibfk_1` FOREIGN KEY (`uid`) REFERENCES `u
ser` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `message_ibfk_2` FOREIGN KEY (`from`) REFERENCES `user
` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `message_ibfk_3` FOREIGN KEY (`parent`) REFERENCES `message` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8 |

这是一个存储用户消息及其回复的表。如果我对整个查询应用一个限制,假设限制为30,结果将是包含父消息和子消息(回复)的30行。但是,如何获得30个父消息和每条消息的回复呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-16 05:36:21

试试这个:

代码语言:javascript
复制
SELECT `message`.* 
FROM 
        `message` INNER JOIN
        (SELECT `id` FROM `message` WHERE `parent` IS NULL LIMIT 30) `ids` ON 
            `message`.`id` = `ids`.`id` OR `message`.`parent` = `ids`.`id`
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8526748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档