MySQL返回ID最小的ID

时间:2011-12-20 15:57:52

标签: mysql count unique distinct

我正在尝试从表中获取ID,该ID基于哪个ID仅使用单个查询的条目最少。是否可以只在一个查询中执行此操作?

例如:

----------------------
|   ID   | Article_ID|
----------------------
|    1   |      7    |
----------------------
|    1   |      3    |
----------------------
|    1   |      4    |
----------------------
|    2   |      5    |
----------------------

我希望它为ID“2”返回“2”,因为它只有1个计数而ID 1有3个计数。

我知道我可以通过首先运行查询来获取所有ID的列表然后执行循环以获取每个ID计数然后最终比较它们来完成此操作但我想知道是否可以执行此操作所有这一切都在一个查询中。

2 个答案:

答案 0 :(得分:1)

从以下光标中读取第一行:

select id from (
  select id, count(id) as c 
    from <table name> group by id 
) as x order by c limit 1

答案 1 :(得分:0)

我最喜欢的获取此数据的方法是使用自联接(我可能会使&lt;运算符向后,我没有测试它。

SELECT t1.ID, t1.Article_ID
FROM table t1
    LEFT JOIN table t2 ON t1.id = t2.id AND t1.article_id < t2.article_id
WHERE t2.id is null

这将从查询中返回,以防它有用,即使它没有完全回答问题。

-------------------
| ID | Article_ID |
-------------------
| 1  | 3          |
-------------------
| 2  | 5          |
-------------------