即时通讯工具试图做的是列出所有类别及其帖子,但只限制每个类别的帖子。并排除没有任何帖子的类别。MySQL的子选择限制
我这样做了两个查询,虽然,得到所有类别有帖子,循环的结果,并获得每个类别ID的X数量的帖子。
如何在1个查询中执行此操作?
编辑:这是我完成的,到目前为止..
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
))
使用变量来模拟ROW_NUMBER。 –
给我们一些东西。你的数据库模式是什么?你试过什么了? – netcoder
更新了我的帖子.. – Gene