2015-12-06 86 views
1

考虑表:myTable的一个b,C,d)如果一个b弥补的主键。SQL计算涉及复合主键

会以下查询的结果:

SELECT distinct(b) FROM myTable; 

是相同的:

SELECT * FROM myTable; 

换言之,将结果集中的第一查询的具有元组的相同数量的myTable?我认为没有,因为b可以有非唯一值,而只有主键ab是唯一的。

+2

是的,你回答了你自己的问题 – Mihai

+0

谢谢,确保我没有误解任何东西。 – coders

回答

1

不,因为b不是myTable的主键。考虑第一种情况下的情况下

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

,你将有2元组(且仅列B),而在第二种情况下,你将有5元组和表中的所有列。