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 |
+------------+