【发布时间】:2015-03-19 13:53:50
【问题描述】:
考虑下表:
id int primary_key
user_id int
type enum('type1', 'type2', 'type3')
与实际状态:
id user_id type
1 2 type1
2 2 type1
3 2 type1
4 2 type1
5 2 type2
我想写一个选择,它返回 id 为 1,2,3,5 的行; 我想为 user_id = 2 选择所有行,同时只选择每种类型的最多 3 个。 id=4 的行不会被选中,因为它已经找到了 3 行 type1。
一种方法是为每个类型的值创建 3 个单独的查询,然后对它们进行 UNOIN。有没有更好/更有效的方法?
【问题讨论】: