如何选择每个类别的3个随机项?

时间:2011-06-23 00:55:51

标签: mysql sql

我需要一些帮助来编写一个select查询基本上我的表格结构如下:

cat_prod
----------
cid | pid
----------
 1 | 1
 2 | 2
 3 | 3
 4 | 4
 5 | 5
 1 | 2
 2 | 3
 3 | 4
 4 | 5
 5 | 1
 1 | 3
 2 | 4
 3 | 5
 4 | 1
 5 | 2


现在我想选择每个cid存在的至少3个随机pid,或者如果小于3,则选择最大pid,我将如何在一个查询中执行此操作?请记住,我希望查询尽可能高效,表格数据可能会有所增长。

由于

1 个答案:

答案 0 :(得分:0)

虽然可能需要进行一些更改,但以下查询几乎是合适的:

select C.cid, C.pid
from cat_prod C
where C.pid in (select c1.pid from cat_prod c1 order by (pid) limit 3);