Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL连接查询结果_Mysql - Fatal编程技术网

MYSQL连接查询结果

MYSQL连接查询结果,mysql,Mysql,我有一个多年前建立的老论坛,现在变成了网站上的只读部分。作为编程练习,尽管数据库设计很糟糕,但我正试图减少代码的使用量 我试图实现的是在回复页面上:一个查询显示第一篇帖子(愚蠢地存储在“主题”表中),然后显示“回复”表中的其余帖子 简表: 'replies' topicID posted_by body date_posted 'topics' topicID subject body posted_by date_posted 我想得到的表格是: “主题”的初始帖子,然后是按发布日期排序的

我有一个多年前建立的老论坛,现在变成了网站上的只读部分。作为编程练习,尽管数据库设计很糟糕,但我正试图减少代码的使用量

我试图实现的是在回复页面上:一个查询显示第一篇帖子(愚蠢地存储在“主题”表中),然后显示“回复”表中的其余帖子

简表:

'replies'
topicID
posted_by
body
date_posted

'topics'
topicID
subject
body
posted_by
date_posted
我想得到的表格是:

“主题”的初始帖子,然后是按发布日期排序的回复(最早的在前)

以下是我一直在处理的问题:

SELECT DISTINCT
r.body, r.posted_by, r.date_posted, t.body, t.date_posted, t.posted_by, t.subject
FROM
replies r
LEFT JOIN topics t
    ON r.topicID = t.topicID
WHERE
r.topicID = 2372
ORDER BY
t.posted_by DESC,
r.date_posted DESC

有没有人对如何调整此设置以获得我想要的方案有任何想法?

联合查询应提供您要查找的数据:

SELECT topicID, subject, body, posted_by, date_posted
FROM topics
WHERE topicID = 2372
UNION
SELECT r.topicID, t.subject, r.body, r.posted_by, r.date_posted
FROM replies r
    INNER JOIN topics t ON r.topicID = t.topicID
WHERE t.topicID = 2372
ORDER BY r.date_posted DESC;

嗨,谢谢,这太棒了。它几乎做了我想要的一切。直到出现错误的
ORDER BY
。我必须摆弄它,看看我能做什么:)编辑:我刚刚删除了
r.
别名,它工作了^^Oops,很抱歉。另一种方法是,可以用括号将UNION查询的第二部分括起来,以便只对回复应用排序。