我想從2個不同的mysql表中收集數據,按照時間戳排序結果,但不將兩個表中的列合併到一行中。MySQL從2個不相關的表中選擇記錄按時間戳排序
T_ONE(one_id
,one_someinfo
,one_ts
)
T_TWO(two_id
,two_otherinfo
,two_ts
)
注意,字段two_otherinfo是不一樣的one_someinfo,在共同的列只有ID和時間戳。
結果應該是由時間戳排序的兩個表的混合,但根據時間戳,每行應該只包含表的相應列。
例如,如果最新記錄來自T_TWO那行應該有T_ONE列爲空的one_someinfo
列。
我只需要訂購來自T_ONE的最新消息和發佈在T_TWO上的最新消息,因此這些表格無關。我想避免使用2個查詢,然後通過使用PHP的時間戳來合併和排序結果。有沒有人知道這個解決方案?在此先感謝
這是表的結構
CREATE TABLE `posts` (
`id` int(10) unsigned NOT NULL auto_increment,
`fromid` int(10) NOT NULL,
`toteam` int(10) NOT NULL,
`banned` tinyint(1) NOT NULL default '0',
`replyid` int(15) default NULL,
`cont` mediumtext NOT NULL,
`timestamp` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
CREATE TABLE `stars` (
`id` int(10) unsigned NOT NULL auto_increment,
`daynum` int(10) NOT NULL,
`userid` int(10) NOT NULL,
`vote` tinyint(2) NOT NULL default '3',
`timestamp` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
INSERT INTO `posts` (`fromid`, `toteam`, `banned`, `replyid`, `cont`, `timestamp`) VALUES(5, 12, 0, 0, 'mess posted#1', 1222222220);
INSERT INTO `posts` (`fromid`, `toteam`, `banned`, `replyid`, `cont`, `timestamp`) VALUES(5, 12, 0, 0, 'mess posted#2', 1222222221);
INSERT INTO `posts` (`fromid`, `toteam`, `banned`, `replyid`, `cont`, `timestamp`) VALUES(5, 12, 0, 0, 'mess posted#3', 1222222223);
INSERT INTO `stars` (`daynum`, `userid`, `vote`, `timestamp`) VALUES(3, 160, 4, 1222222222);
INSERT INTO `stars` (`daynum`, `userid`, `vote`, `timestamp`) VALUES(4, 180, 3, 1222222224);
通過timestamp DESC
結果排序應該是臺星與timestamp
1222222224然後表職位的第三條記錄的第二個記錄與timestamp
1222222223以及...因爲表格之間有不同的字段,所以結果的第一行應該包含表格列的列,而表格列的列應該是空的。
只需編輯您的問題,如果您需要提供其他信息。 –