我正在使用PHP和MySQL编写一个简单的论坛。
在论坛主页上,我想按字母顺序列出所有主题,并为每个主题我想要用海报的用户名显示最新帖子。
我知道如何对线程表进行排序,我知道如何从posts表中提取给定线程的最新帖子。
但我不确定如何将两个查询合并为一个。
SELECT *
FROM threads
ORDER BY title
SELECT comment, username
FROM posts
WHERE thread_id =...
ORDER BY post_datetime
DESC LIMIT 1
我试过了:
SELECT t.title
FROM threads t
LEFT JOIN(
SELECT comment, username, thread_id
FROM posts
ORDER BY post_datetime DESC LIMIT 1
) d
ON t.thread_id = d.thread_id
ORDER BY t.title
但这只返回论坛帖子的标题(已排序)。
答案 0 :(得分:2)
你应该读一下加入:
SELECT t.title, p.comment, p.username, p.thread_id
FROM threads t
INNER JOIN posts p
ON t.thread_id = p.thread_id
ORDER BY t.title, p.post_datetime