0

这是我有两张桌子的情况

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 执行一个查询?

4

0 回答 0