a 表
a_id name
1 类别1
2 类别2
3 类别3
4 类别4
5 类别5
b表
b_id name a_id
1 a 1
2 b 1
3 c 1
4 d 2
5 e 2
sql语句该怎样写 每个类别查询10条数据
查出类似下面的数组结构:
array(
array(
'a_id'=>1,
'a_name'=>类别1,
'b_list'=>array{
array(
'b_id'=>1,
'b_name'=>a,
'a_id'=>1,
),
array(
'b_id'=>1,
'b_name'=>a,
'a_id'=>1,
),
}
},
array(
'a_id'=>1,
'a_name'=>类别1,
'b_list'=>array{
array(
'b_id'=>1,
'b_name'=>a,
'a_id'=>1,
),
array(
'b_id'=>1,
'b_name'=>a,
'a_id'=>1,
),
}
},
);
我不确定这种结构mysql 能不能查。效率怎样,想折腾一下(A V A)
采用分组,取巧的一种方式
SELECT * FROM b WHERE b.id in (
SELECT GROUP_CONCAT(b.id) FROM a INNER JOIN b on a.id =b.aid GROUP BY a.id HAVING COUNT(*) < 11
)
思路是拿到分组的b表的10个id ,然后在范文查找,最后拿到每组10个
如果取最新的话,在里面排序使用