Php 合并两个表,按日期排序,带限制
我有两张表Php 合并两个表,按日期排序,带限制,php,mysql,sql,mysqli,Php,Mysql,Sql,Mysqli,我有两张表帖子和回复。我目前所做的只是在我的网站主页上显示25篇最新的帖子,并进行以下查询: SELECT p.post_id , p.user_id , p.message , p.datetime , u.username FROM posts p LEFT JOIN users u ON p.user_id = u.user_id ORDER BY p.datetime DESC LIMIT 25 我想做
帖子
和回复
。我目前所做的只是在我的网站主页上显示25篇最新的帖子,并进行以下查询:
SELECT p.post_id
, p.user_id
, p.message
, p.datetime
, u.username
FROM posts p
LEFT
JOIN users u
ON p.user_id = u.user_id
ORDER
BY p.datetime DESC
LIMIT 25
我想做的是获得25篇最新的帖子
和回复
(合并)。例如,我想在主页上输出:
User A posted "blah blah blah" on Feb. 3, 2014.
User B posted "yeah yeah yeah" on Feb. 2, 2014.
User A replied "this is a reply" on Feb. 2, 2014.
User C posted "some post" on Feb. 1, 2014.
我该怎么做呢?您可以使用,然后限制结果。我假设您的答复表具有相同的结构:
SELECT results.*, u.username FROM (
SELECT p.post_id, p.user_id, p.message, p.datetime FROM posts p
UNION
SELECT r.post_id, r.user_id, r.message, r.datetime FROM replies r
) as results
LEFT JOIN users u ON results.user_id = u.user_id
ORDER BY results.datetime DESC LIMIT 25
若回复表的结构相同,那个么可以像下面这样使用union
SELECT p.post_id, p.user_id, p.message, p.datetime AS postTime, u.username FROM posts p LEFT JOIN users u ON p.user_id = u.user_id
UNION
SELECT r.reply_id, r.user_id, r.message, r.datetime AS postTime, u.username FROM replies r LEFT JOIN users u ON r.user_id = u.user_id
ORDER BY postTime DESC LIMIT 25
帖子和回复是否以某种方式相互关联。我想不会,否则我肯定你会提到的!