我有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 )
这称为“分组最大”查询
编辑:使查询返回所有文档行,如果没有相关内容,则返回NULL。