为每个子类别mysql选择X子类别和N个项目

时间:2015-07-09 13:17:03

标签: mysql select group-by records

我有三张桌子

site_article | site_famille_articles | site_categorie
id           | id                    | id
titre        | titre                 | titre
famille_id   | categorie_id

famille_id是site_famille_articles的约束键 categorie_idis对site_categorie的约束键

在我的网站上,我希望每页最多显示4个'site_famille_articles'项目,并为所选'site_categorie'的每个'site_famille_articles'显示最多6个'site_article'项目

我希望我到达解释我的问题

有没有办法在mysql

中做到这一点

这是我试过的东西

$table_categorie = "site_categorie";
$table_famille_articles = "site_famille_articles";
$table_article = "site_article";

$sql = "SELECT $table_article.id as article_id, 
                $table_article.titre as article_titre, 
                $table_famille_articles.titre as famille_titre
                FROM $table_article 
                LEFT JOIN $table_famille_articles on $table_article.famille_id = $table_famille_articles.id 
                LEFT JOIN $table_categorie on $table_famille_articles.categorie_id = $table_categorie.id 
                WHERE $table_categorie.id IN 
                        ( SELECT id FROM $table_categorie WHERE $table_categorie.titre like '%".$_POST['titre_categorie']."%' )
                ORDER BY famille_titre ASC"

此查询允许我将所有'site_article'项目按'site_famille_articles'分组为所选'site_categorie'

这是一个例子: 这个查询:

SELECT site_article.id as article_id, site_article.titre as article_titre, site_famille_articles.titre as famille_titre FROM site_article LEFT JOIN site_famille_articles on site_article.famille_id = site_famille_articles.id LEFT JOIN site_categorie on site_famille_articles.categorie_id = site_categorie.id WHERE site_categorie.id IN ( SELECT id FROM site_categorie WHERE site_categorie.titre like 'Peinture' ) ORDER BY famille_titre ASC

给我这个结果:image

0 个答案:

没有答案