考虑表格:myTable(a,b,c,d) 其中a和b组成主键。
以下查询的结果:
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/