我有一个MySQL数据库,它有三个数据库表:news_articles
,languages
和news_articles_languages
。languages
表保存系统支持的每种语言的记录news_articles
表保存新闻文章的一般信息,如ID和附加图像news_articles_languages
表包含新闻文章的本地化信息,还存储修订。news_articles_languages
表的结构如下:
id INT AUTO_INCREMENT
article_id INT
language_id INT
title VARCHAR
friendly_name VARCHAR
content TEXT
created TIMESTAMP
当保存一篇新闻文章时,翻译会插入到这个表中的一个新的
created
列中,这样我就可以轻松地查询以前的修订。但是,我希望能够根据文章ID提取所有最新修订。对此的查询是什么?我尝试过
GROUP BY
和DISTINCT
的各种组合,但这些组合在一种语言中只能给出一个结果;我希望给定文章中使用所有语言。 最佳答案
如果id最高的版本总是最新的,那么我认为下面的应该可以工作。如果你不能依赖它,需要使用'创建',那么我不确定!
SELECT * FROM `news_articles_languages` WHERE id IN(SELECT MAX(id) FROM `news_articles_languages` WHERE article_id = 1 GROUP BY language_id)
关于php - 在修订系统中为所有语言提取最新版本的内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6505166/