mysql - SQL计算涉及复合主键的元组数

标签 mysql sql primary-key

考虑表格:myTable(a,b,c,d) 其中ab组成主键。

以下查询的结果:

SELECT distinct(b) FROM myTable;

同于:

SELECT * FROM myTable;

换句话说,第一个查询的结果集与myTable的元组数量相同吗?我认为不是,因为 b 可以有非唯一值,而只有主键 ab 是唯一的。

最佳答案

不,因为 b 不是 myTable 的主键。考虑案例

| a | b |
+---+---+
| 1 | 1 |
| 2 | 1 |
| 3 | 1 |
| 4 | 1 |
| 1 | 2 |

在第一种情况下,您将有 2 个元组(并且只有 b 列),而在第二种情况下,您将有 5 个元组和表的所有列。

关于mysql - SQL计算涉及复合主键的元组数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34121272/

相关文章:

sql - 选择两列范围之间的值

mysql - 主键和外键冲突

mysql - AWS - 创建只读副本的只读副本

php - 使用 Laravel Migration,如何在不使用原始 SQL 查询的情况下更改列的数据类型并更新其现有数据以适应新数据类型?

php - sql中的/*是什么意思?

sql - 在 SQL Server 函数中返回可空类型

mysql - SQL 与自身连接

mysql - Hibernate 将 java int 转换为 mysql 整数

mysql - 归一化 - 1NF 说明

mysql - 使用主键将 Ignore 插入 Mysql