我有 2 个表,一个“文档”表和一个“内容”表。它们看起来像这样(简化):
document table:
docID
docTitle
content table:
contentID
docID
dateAdded
content
对于每次内容更改,都会在“内容”表中插入一条新记录。这样就有了所有更改的完整历史记录。我想获得所有文档的列表,并加入最新的内容。它应该返回 docID、docTitle 和具有最新“dateAdded”值的相关内容记录。我的大脑现在让我失望了,我将如何创建这个连接?
最佳答案
这可以通过子查询来完成:
SELECT d.docID, docTitle, c.dateAdded, c.content
FROM document d LEFT JOIN content c ON c.docID = d.docID
WHERE dateAdded IS NULL
OR dateAdded = (
SELECT MAX(dateAdded)
FROM content c2
WHERE c2.docID = d.docID
)
这称为 "groupwise maximum" 查询
编辑:使查询返回所有文档行,如果没有相关内容,则为 NULL。
关于sql - 仅显示连接的 MySQL 表中的最近日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1368331/