MySQL - 获取缺失的 2 列 ID

标签 mysql select

我有一个这样的表:

  
Code | ID |
 AAA | 1  |
 AAA | 2  |
 AAA | 4  |
 AAA | 5  |
 BBB | 1  |
 BBB | 4  |
 BBB | 5  |
 BBB | 6  |

仅使用选择查询可以列出缺少的“code”和“id”吗?

  
Code | ID |
 AAA | 3  |
 BBB | 2  |
 BBB | 3  |

我在下面的链接中找到了一个半途解决方案代码(仅适用于一列): MySQL get missing IDs from table 任何帮助将不胜感激。

最佳答案

非常相似,只需在 where 子句和 group by 子句中包含另一列即可:

SELECT a.id+1 AS start, MIN(b.id) - 1 AS end
    FROM testtable AS a, testtable AS b
    WHERE a.id < b.id AND a.code = b.code
    GROUP BY a.code, a.id
    HAVING start < MIN(b.id)

关于MySQL - 获取缺失的 2 列 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31007819/

相关文章:

mysql - 如何在没有 ON 条件的情况下使用 mysql JOIN?

php - 警告 : fflush() expects exactly 1 parameter, 0 给出

database - SQL Server - 使用带交集的计数函数

mysql - 选择前三个值按列排序

sql - 标记以及如何测试标记是否存在

php - 根据经纬度从mysql获取结果

mysql - 在线 SQL 编辑器(或不),自动将 sql 命令大写(例如 SELECT、AND、THEN、DISTINCT、DROP...)

c - 对非阻塞套接字使用 select() 进行连接总是返回 1

mysql select - 当列不存在时,select AVG() 查询不返回

select - SQL:FROM 中连接的表的可用性