我的问题很简单。如何在一个页面上显示三个表格中的内容,并按日期排序。
这是一个博客,我有文章,状态和报价等帖子。
文章 - 身份证,标题,照片,文字,类型,日期时间(php - time())
状态 - ID,标题,文字,类型,日期时间(php - time())
QUOTE - ID,引用,作者,类型,日期时间(php - time())
我需要显示按日期时间排序的页面上的内容。然后我可以通过帖子类型更改html / css。
加入表格或在数组中显示它会更好吗?
感谢您的帮助。
答案 0 :(得分:1)
您可以尝试此查询..但我已假设Type在所有三个表中都很常见
SELECT a.Id,a.Title,a.Photo,a.Text,
a.Type,a.DateTime,s.Title,s.Text,q.Quote,q.Author,q.Type
FROM ARTICLE a
INNER JOIN STATUS s
ON a.Type = b.Type
INNER JOIN QUOTE q
ON b.Type = q.Type
GROUP BY a.Type
ORDER BY a.Datetime ASC;
如果type未给出结果,则在“ON”条件下使用id 因为,表结构没有明确定义。
答案 1 :(得分:1)
如果你想在MySQL中进行排序,你需要统一三个表中的字段并进行UNION ALL,而不是JOIN。 如果你有三者之间的关系,你可以使用连接,据我所知,这些表是不相关的。
其他选项是合并数组中这三个查询的结果。
spray.can.client.parsing {
max-content-length = 8m
}
当然你可以进行一些重构,但是这个片段显示了你如何做到这一点。
答案 2 :(得分:0)
对于那些寻找simmilar解决方案的人,我用这个简单的方法创建了它:
SELECT id, datetime FROM article
UNION ALL
SELECT id, datetime FROM status
UNION ALL
SELECT id, datetime FROM quote
ORDER BY datetime ASC;
现在我知道帖子的ID,并且可以显示按日期时间排序的所有内容。