Php 如何使用日期排序合并两个表
我想将两个表的结果合并到一个表中。 请参阅下表:Php 如何使用日期排序合并两个表,php,mysql,sorting,union,Php,Mysql,Sorting,Union,我想将两个表的结果合并到一个表中。 请参阅下表: Data from microblog table as Row array Array ( [ID] => 46 [userID] => 1 [userNAME] => user [blog_content] => HAI DEAR [page_name] => honda [page_ID] => 31 [post_time] => 2011-10-18 11:06:54 ) Dat
Data from microblog table as Row array
Array ( [ID] => 46 [userID] => 1 [userNAME] => user [blog_content] => HAI DEAR [page_name] => honda [page_ID] => 31 [post_time] => 2011-10-18 11:06:54 )
Data from Page_review table as Row array
Array ( [page_review_id] => 5 [page_id] => 31 [page_review_by_id] => 31 [page_review_by_username] => user [page_review_time] => 2011-10-18 11:43:34 [page_review_content] => hai )
表微博MySQL查询:
DROP TABLE IF EXISTS `featurezme_store`.`microblog`;
CREATE TABLE `featurezme_store`.`microblog` (
`ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`userID` int(10) unsigned NOT NULL,
`userNAME` varchar(45) NOT NULL,
`blog_content` text NOT NULL,
`page_name` varchar(45) NOT NULL,
`page_ID` int(10) unsigned NOT NULL,
`post_time` datetime NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=48 DEFAULT CHARSET=latin1;
表PAGEU审查
DROP TABLE IF EXISTS `featurezme_store`.`page_review`;
CREATE TABLE `featurezme_store`.`page_review` (
`page_review_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`page_id` int(10) unsigned NOT NULL,
`page_review_by_id` int(10) unsigned NOT NULL,
`page_review_by_username` varchar(145) NOT NULL,
`page_review_time` datetime NOT NULL,
`page_review_content` varchar(555) NOT NULL,
PRIMARY KEY (`page_review_id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;
表Microblog用于存储博客帖子,page_review用于存储关于页面的评论[微博在页面中]
我的要求是我想显示按日期排序的博客帖子和页面评论[微博上的帖子时间和页面上的页面评论时间]
我该怎么做?请帮帮我。好的,我已经更新了我的answear,你可以随意使用union 只要有相同数量的字段,并且因为结果被放置在一个字段下,所以使用有意义的字段,使其位于另一个字段下。此示例将显示由特定用户创建的、与特定页面相关的所有博客和评论(如果page_review_by_id实际上指的是用户id)
(
SELECT
`microblog`.`userID`,
`microblog`.`blog_content` as `blog or review`,
`microblog`.`post_time`,
`microblog`.`page_id`
from `microblog`
where `microblog`.`page_id`='1' and `microblog`.`userID`='1'
)
union
(
SELECT
`page_review`.`page_review_by_id`,
`page_review`.`page_review_content`,
`page_review`.`page_review_time`,
`page_review`.`page_id`
from `page_review`
where `page_review`.`page_id`='1' and `page_review`.`page_review_by_id`='1'
)
======编辑==建议使用外键的架构================
因为我在您的模式中看不到任何外键,如果我可以选择建议一个应用外键的模式,我将在下面给出一个
此架构支持以下规则:
- 博客属于站点,而不是用户,因此不存在应用于删除的级联
- 博客由用户创建,并应用外键,因此当插入用户id时,通过外键确保一致性李>
- 对于页面也是如此,外键是applid而不是delte cascade
- 评论表也是如此
- 如果删除了用户或页面,则不会删除子行
/*********创建************/
创建表
(user
int unsigned NOT NULL自动递增,user\u id
varchar(16)不为空,username
BLOB,userpassword
主键(
) )ENGINE=InnoDB默认字符集=1 创建表格user\u id
(page
mediumint unsigned NOT NULL自动递增,page\u id
varchar(55)不为空,title
主键(
) )ENGINE=InnoDB默认字符集=1 创建表格page\u id
(microblog
int unsigned NOT NULL自动增量,blog\u id
文本不为空,博客内容
datetime不为空,date\u已创建
int unsigned NOT NULL,author\u id
mediumint unsigned NOT NULL, 主键(page\u id
), 约束blog\u id
外键(blogfk1
) 参考资料author\u id
(用户
), /删除级联时没有/ 约束用户id
外键(blogfk2
) 参考资料page\u id
(page
) )ENGINE=InnoDB默认字符集=1 创建表格page\u id
(page\u review
int unsigned NOT NULL自动递增,review\u id
varchar(555)不为空,review_content
datetime不为空,date\u已创建
int unsigned NOT NULL,author\u id
mediumint unsigned NOT NULL,page\u id
主键(
), 约束review\u id
外键(reviewfk1
) 参考资料author\u id
(用户
), /删除级联时没有/ 约束用户id
外键(reviewfk2
) 参考资料page\u id
(page
) )ENGINE=InnoDB默认字符集=1; /*******************/ /******插入******/page\u id
插入
(用户
,用户名
) 值('username1',AES_ENCRYPT('password1', “encription_key”), ('username22',AES_ENCRYPT('password2', “encription_key”) 插入用户密码
(页面
)值 ('title1'),('title2') 插入标题
(微博
,博客内容
,创建日期
,作者id
)值 ('blogcontent1','2011-2-2 12:00','1','1'), ('blogcontent2','2011-2-2 12:00','2','2') 插入页面id
(页面查看
),查看内容
,date\u created
,author\u id
)值 (‘回顾内容1’、‘2011-2-2 12:00’、‘1’、‘1’), (‘回顾内容2’、‘2011-2-2 12:00’、‘2’、‘2’); /***************/ /******查询***/ /有关标识用户的帮助/ 选择page\u id
来自username
其中user
='username22' 和username
=AES\u ENCRYPT('password2','encription\u key')) ( 选择userpassword
微博
作为博客内容
,博客或内容
微博
,创建日期
微博
,作者id
微博
来自页面id
其中微博
微博
='1'和作者id
微博
='1' ) 联盟 ( 选择页面id
page\u review
,review\u content
page\u review
,date\u created
page\u review
,作者id
page\u review
从page\u id
其中page\u查看
page\u review
='1'和author\u id
page\u review
='1' )page\u id
page\U id
和page\U id
字段?是的,它们是,在微博页面上\U id表示哪个页面的用户发布帖子,在页面上?\U评论-哪个页面评论评论评论。我想我需要这样的内容SELECT*FROM(选择“post”作为类型,id,userID,blog\U内容,从微博创建时间,其中page\U id=33 U