Php 选择带有2个表的查询
我有一个页面,人们可以在这里发表评论,也有一个页面,人们可以点击“关注”其他人的个人资料(和Facebook上的一样) 我想让SELECT query发布我所有的评论,但会按照以下方式进行排序: 首先,打印你点击关注的最新用户的2条最新评论(必须在本周发布)。 第二,发布其余已发布的内容,按创建日期排序 (我正在使用linux时间) 你能帮我做SQL查询吗 这是我当前的选择查询。它按创建日期提取所有注释:Php 选择带有2个表的查询,php,mysql,Php,Mysql,我有一个页面,人们可以在这里发表评论,也有一个页面,人们可以点击“关注”其他人的个人资料(和Facebook上的一样) 我想让SELECT query发布我所有的评论,但会按照以下方式进行排序: 首先,打印你点击关注的最新用户的2条最新评论(必须在本周发布)。 第二,发布其余已发布的内容,按创建日期排序 (我正在使用linux时间) 你能帮我做SQL查询吗 这是我当前的选择查询。它按创建日期提取所有注释: SELECT id, userID, text, createDate FROM `co
SELECT id, userID, text, createDate FROM `comments` AS comment WHERE (comment.refID = 0) AND (comment.pageName = 'yard') AND 1=1 ORDER BY comment.createDate DESC LIMIT 0, 20
“followers”表如下所示:
userID ownerID createDate
1 2 1439019657
1 4 1438940399
“注释”表看起来像这样:
id userID pageName refID text createDate
220 1 yard 0 text1 1438030967
227 1 yard 0 text2 1438031704
228 1 yard 0 text3 1438031704
我可能把追随者的关系搞砸了。对于完整上下文,示例数据看起来不完整。它肯定会显示userID=1的注释,但要么没有跟随userID=1的人,要么3和4都跟着他。不知道refID在comments表中做什么。不管怎样,查询只显示一个概念-您将了解详细信息
SELECT un.* FROM ((
SELECT 1 as priority, comment.id, comment.userID, comment.text, comment.createDate
FROM `comments` as comment
INNER JOIN `followers` as follower ON follower.userID = comment.userID
WHERE comment.refID = 0
AND comment.pageName = 'yard'
AND ...
ORDER BY follower.createDate DESC LIMIT 2
) UNION DISTINCT (
SELECT 2 as priority, id, userID, text, createDate
FROM `comments` as comment
WHERE comment.refID = 0
AND comment.pageName = 'yard'
)) as un ORDER BY un.priority, un.createDate DESC LIMIT 20
我可能把追随者的关系搞砸了。对于完整上下文,示例数据看起来不完整。它肯定会显示userID=1的注释,但要么没有跟随userID=1的人,要么3和4都跟着他。不知道refID在comments表中做什么。不管怎样,查询只显示一个概念-您将了解详细信息
SELECT un.* FROM ((
SELECT 1 as priority, comment.id, comment.userID, comment.text, comment.createDate
FROM `comments` as comment
INNER JOIN `followers` as follower ON follower.userID = comment.userID
WHERE comment.refID = 0
AND comment.pageName = 'yard'
AND ...
ORDER BY follower.createDate DESC LIMIT 2
) UNION DISTINCT (
SELECT 2 as priority, id, userID, text, createDate
FROM `comments` as comment
WHERE comment.refID = 0
AND comment.pageName = 'yard'
)) as un ORDER BY un.priority, un.createDate DESC LIMIT 20
期望的结果是这样的期望的结果是这样的