我需要一些帮助来编写一个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,我将如何在一个查询中执行此操作?请记住,我希望查询尽可能高效,表格数据可能会有所增长。
由于
答案 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);