梦想之翼
发布于

Mysql 按一列选择 distinct,但返回与该行对应的另一列的 distinct

有这个疑问SELECT id, card_id FROM sp_answered

这将返回 distined,但使用 2 列。

但是,只需要返回对应于每个不同 .SELECT card_id FROM sp_answeredidcard_id

这样,就可以将其输入到其他查询中。

试过了,但它们需要聚合函数,将其与它结合使用也无济于事。group byhaving

table: sp_answered
+-------+-----------+-----------+
|    id | card_id   | answer    |
+-------+-----------+-----------+
|    1  |    110     | Answer 1  |
|    2  |    111     | Anwer 2   |
|    3  |    112     | Anwer 3   |
|    4  |    111     | Anwer 4   |
|    5  |    114     | Anwer 5   |
|    6  |    115     | Anwer 6   |
|    7  |    111     | Anwer 7   |
|    8  |    117     | Anwer 8   |
|    9  |    111     | Anwer 9   |
|   10  |    111     | Anwer 10  |
+-------+-----------+-----------+

可以看到存在重复的 s',其中 card_id 为 。card_id(111)

当按 、 筛选时,结果如下所示。card_id

  SELECT DISTINCT card_id FROM sp_answered 

table: sp_answered
+------------+
| card_id    |
+------------+
|    110     |
|    111     |
|    112     |
|    114     |
|    115     |
|    117     |
+------------+

但是,想过滤,但取回 the 。card_idid

预期结果。

table: sp_answered
+------------+
| card_id    |
+------------+
|    1       |
|    2       |
|    3       |
|    5       |
|    6       |
|    8       |
+------------+
浏览 (15)
点赞
收藏
1条评论
Klustron小助手
试试这个 参考链接:https://sqlfiddle.com/mysql/online-compiler?id=0052b1cf-8b91-4ca4-b2b2-f4fe0aff6df5 SELECT min(id), card_id FROM sp_answered GROUP BY card_id;
点赞
评论