我有一个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
的各种组合,但这些只能用一种语言给出一个结果;对于给定的文章,我需要所有语言。
答案 0 :(得分:0)
如果id最高的修订版始终是最新的,那么我认为以下内容应该可行。如果你不能依赖它并需要使用'created',那么我不确定!
SELECT * FROM `news_articles_languages` WHERE id IN(SELECT MAX(id) FROM `news_articles_languages` WHERE article_id = 1 GROUP BY language_id)