これが私が2つのテーブルを持っている状況です
of
idof, (somtother data)
---------------------
1, (somtother data)
2, (somtother data)
3, (somtother data)
そして、私が持っています
ofc
id, ofid, idcat
------------------
1,1,1
1,1,2
1,2,1
1,3,3
これは、最初のテーブルからすべてを取得し、2番目のテーブルと結合するために使用するものです
SELECT * FROM `of`
LEFT JOIN (`ofc`)
ON ( `of`.`idof` = `ofc`.`ofid` )
今、idcatごとに(2番目のテーブルにさらに行があると想像してください)から5行を取得したいのですが、SQLを正しく取得できないようです。私は今までやった
select * from `of` as `f`
JOIN `ofc` as `fa`
ON `f`.`idof`=`fa`.`ofid`
where (
select count(*) from `of` as `nf`
JOIN `ofc` as `nfa`
ON `nf`.`idof`=`nfa`.`ofid`
GROUP BY `nfa`.`idcat`
) <= 5;
このサブクエリが複数の行を返すと、mysql が文句を言います。これを行う他の方法はありますか?異なるidcごとに1つのクエリを実行せずに?