MySQL WHERE,LIMIT和分页

ste*_*tef 6 mysql

我有表:documents,languages和document_languages.文档以一种或多种语言存在,并且此关系映射在其中document_languages.

想象一下,现在我想在页面上显示文档及其所有语言,并对我的结果集进行分页,以在每个页面上显示10条记录.将有一个WHERE声明,指定应检索哪些语言(例如:en,fr,it).

即使我只想在页面上显示10个文档(LIMIT 10),如果文档有多种语言(大多数都有),我必须返回10个以上的记录.

如何将WHERE语句与LIMIT单个查询组合以获取我需要的记录?

Rak*_*oni 1

使用子查询仅过滤文档记录

select * from 
(select * from documents limit 0,10) as doc, 
languages lan, 
document_languages dl
where doc.docid = dl.docid
and lan.langid = dl.langid
Run Code Online (Sandbox Code Playgroud)

还要检查子查询文档

http://dev.mysql.com/doc/refman/5.0/en/from-clause-subqueries.html http://dev.mysql.com/doc/refman/5.0/en/subqueries.html