gpt4 book ai didi

mysql - 按另一张表排序结果?

转载 作者:行者123 更新时间:2023-11-29 00:13:08 27 4
gpt4 key购买 nike

我正在开发一个自定义论坛系统,我正在尝试弄清楚如果用户在其中发帖,如何将一个主题放在列表的顶部。

我有这个用于我的查询

SELECT 
user_threads.threadID,
user_threads.title,
user_threads.uid,
user_threads.postDate,
thread_messages.posted
FROM
user_threads,
thread_messages
WHERE
parent = :parent
GROUP BY
user_threads.title
ORDER BY
thread_messages.posted
DESC

这似乎不起作用。如果我在一个新线程中发帖,它会保留在列表中的位置。

最佳答案

您需要通过threadID 连接表。此外,如果您只希望每个线程一行,则需要使用最后一篇文章的日期。

SELECT 
user_threads.threadID,
user_threads.title,
user_threads.uid,
user_threads.postDate,
MAX(thread_messages.posted) AS last_post
FROM
user_threads
LEFT JOIN
thread_messages ON thread_messages.threadID = user_threads.threadID
WHERE
parent = :parent
GROUP BY
user_threads.threadID
ORDER BY
last_post DESC

我使用了 LEFT JOIN 这样即使线程在 thread_messages 中没有任何内容也会被显示。如果不需要,您可以使用常规的 JOIN(又名 INNER JOIN)。

关于mysql - 按另一张表排序结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24003369/

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