夜、
MySQL でグループあたりnに制限されている行の出力を取得しようとしています。結合なしで動作させることはできますが、結合すると恥ずかしがり屋です。関連するテーブルのダンプをここに貼り付けました。
私が使用しているクエリは次のとおりです。
SELECT
title, catRef, RowNum, pCat, tog
FROM
(
SELECT
title, catRef,
@num := IF(@prevCat=catRef,@num+1,1) AS RowNum,
@prevCat AS tog,
@prevCat := catRef AS pCat
FROM (select @prevCat:=null) AS initvars
CROSS JOIN
(
SELECT p.title, oi.catRef
FROM resources p
INNER JOIN placesRel v ON (p.resId = v.refId)
INNER JOIN catRel oi ON (p.resId = oi.refId)
WHERE p.status = 'live' AND v.type = 'res' AND oi.type = 'res'
) AS T
) AS U
WHERE RowNum <= 5
ORDER BY catRef
行数を増やすことができません。または、他のソリューションをいただければ幸いです。
私はこのような結果を探しています:
title catRef RowNum
Title1 1 1
Title2 1 2
Title3 1 3
Title4 2 1
Title5 2 2
Title6 3 1
現時点では、RowNum 列は常に 1 です。