比方说,我有一个screenshots
表和replies
表。所以:每个屏幕截图可以有多个回复(一对多)。现在,我想创建一个两者结合的时间表,但实际上,它们非常不相关(在结构上)。时间轴从2相关表
如何从两个表中选择数据,按其发布时间排序,降序排列;例如,我可以发布帖子,发表一些评论,然后发布另一篇帖子;因为那将是时间线的发生?
通常从两者合并选择表格;但我不希望这种情况发生。关于这个问题,我还需要表格来区分。这里的结构表...
-- -- Table structure for table `screenshots` -- CREATE TABLE IF NOT EXISTS `screenshots` ( `id` int(11) NOT NULL auto_increment, `user` int(11) NOT NULL, `description` text NOT NULL, `time` timestamp NOT NULL default CURRENT_TIMESTAMP, `ext` varchar(4) NOT NULL default 'png', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=14 ; -- -------------------------------------------------------- -- -- Table structure for table `screenshot_replies` -- CREATE TABLE IF NOT EXISTS `screenshot_replies` ( `id` int(11) NOT NULL auto_increment, `user` int(11) NOT NULL, `parent` int(11) NOT NULL, `time` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `text` text NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=27 ;
注:我意识到这可能是this question重复,但我没有发现有该解决方案为我工作。
在此先感谢! :)
我会玩这个,看看它是如何适合的 - 到目前为止它正在组织行的方式有几个缺点 - 谢谢!如果一切都变好,我会将其标记为答案:) – casraf 2010-03-05 11:57:04
刚看了一下mysql_tablename,似乎被弃用?另外,我将结果缓存在一个数组中,我认为它不会起作用 – casraf 2010-03-05 12:12:35
使用“union all”而不是“union”来避免隐式的额外“distinct”步骤 – araqnid 2010-03-05 13:40:53