Php MySQL子选择限制

Php MySQL子选择限制,php,mysql,Php,Mysql,我想做的是列出所有类别和他们的帖子,但只限制每个类别的帖子。并排除没有任何帖子的类别 我通过两个查询完成了这项工作,获取所有包含帖子的类别,循环结果,并获得每个类别ID的X个帖子 如何在一个查询中完成此操作 编辑:这是我迄今为止所取得的成就 SELECT p.post_id, c.category_id FROM category as c JOIN posts AS p ON p.category_id = c.category_id WHERE FIND_IN_SET(p.post_id,

我想做的是列出所有类别和他们的帖子,但只限制每个类别的帖子。并排除没有任何帖子的类别

我通过两个查询完成了这项工作,获取所有包含帖子的类别,循环结果,并获得每个类别ID的X个帖子

如何在一个查询中完成此操作

编辑:这是我迄今为止所取得的成就

SELECT p.post_id, c.category_id
FROM category as c
JOIN posts AS p ON p.category_id = c.category_id
WHERE
FIND_IN_SET(p.post_id, (
    SELECT SUBSTRING_INDEX(a.post_ids, ',', 10)
    FROM
    (
        SELECT GROUP_CONCAT(b.post_id) AS post_ids, b.category_id
        FROM posts as b
        GROUP BY b.category_id
    ) AS a
    WHERE a.category_id = c.category_id
))

像这样的怎么样

SELECT  `category_name` 
FROM  `categories` 
WHERE  `posts` !=0
LIMIT 0 , 30

要排除没有任何帖子的所有类别,请在类别和帖子之间进行内部连接。如果要限制返回的行数,请使用命令。

使用变量模拟行数。请给我们一些信息。您的数据库模式是什么?到目前为止,您尝试了什么?-1,
x-每个类别的帖子数量
需要一个子选择和内部选择中的限制。不是这样的小事。