这是我有两张桌子的情况
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
这是我用来从第一个表中获取所有内容并与第二个表连接的内容
SELECT * FROM `of`
LEFT JOIN (`ofc`)
ON ( `of`.`idof` = `ofc`.`ofid` )
现在我想为每个 idcat 获取 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 执行一个查询?