gpt4 book ai didi

php - 使用 2 个表选择查询

转载 作者:行者123 更新时间:2023-11-30 22:37:35 25 4
gpt4 key购买 nike

我有人们可以发表评论的页面和人们可以点击“关注”其他人个人资料的页面(与 Facebook 上的 LIKE 相同)

我想要一个 SELECT 查询来发布我的所有评论,但会按照以下方式对它们进行排序:首先,打印您点击关注的最新人员的 2 条最新评论(它们必须在本周发布)。其次,发布其余已发布的内容,按创建日期排序

(我用的是linux时间)

你能帮我做 SQL 查询吗?

这是我当前的 SELECT 查询。它通过创建日期提取所有评论:

 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

“关注者”表如下所示:

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 在评论表中做了什么。无论如何,查询仅显示一个概念 - 您会找出详细信息。

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

关于php - 使用 2 个表选择查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32039681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com