如何将2个MySQL查询合并为一个查询?

时间:2016-01-11 16:40:10

标签: mysql

我正在使用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

但这只返回论坛帖子的标题(已排序)。

1 个答案:

答案 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