比方說,我有一個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