【发布时间】:2013-10-02 12:33:24
【问题描述】:
我有一个要从中选择的表,我只想要 2 个不同列值的结果...这就是我的意思是数据方面...
some_table
+----+----------+-------------+
| id | some_id | some_column |
+----+----------+-------------+
| 1 | 10 | alpha |
| 2 | 10 | alpha |
| 3 | 10 | alpha |
| 4 | 20 | alpha |
| 5 | 30 | alpha |
+----+----------+-------------+
我正在运行的查询类型的示例是:
SELECT * FROM some_table WHERE some_column = `alpha`;
如何修改该选择,以便它只为我提供最多 2 个不同的 some_id 的结果...一个示例结果是:
some_table
+----+----------+-------------+
| id | some_id | some_column |
+----+----------+-------------+
| 1 | 10 | alpha |
| 2 | 10 | alpha |
| 3 | 10 | alpha |
| 4 | 20 | alpha |
+----+----------+-------------+
它不会包含 id = 5 行,因为我们只获取最多 2 个不同 some_id(在本例中为 10、20)的结果。
【问题讨论】:
-
你确定你的例子吗?您包括 10 三倍
-
是的,我希望限制 some_id 的不同数量。如问题所述,我最多需要 2 个不同的 some_id。
-
这似乎是 TOP N PER GROUP 的一个变体,它不是微不足道的,但写的是:stackoverflow.com/questions/2129693/… 指向这里code.openark.org/blog/mysql/…,