我有一个MySQL数据库,它有三个数据库表:news_articleslanguagesnews_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 BYDISTINCT的各种组合,但这些组合在一种语言中只能给出一个结果;我希望给定文章中使用所有语言。

最佳答案

如果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/

10-12 16:47
查看更多