知识卡片
DISTINCT是防线
内容
SQL 默认可能保留重复,因此需要知道哪些运算会自动去重,哪些不会。只在重复会改变语义时补上 DISTINCT,并避免 ALL,可以把多重集语义对关系推理的干扰降到最低。
参考来源
《SQL与关系数据库理论——如何编写健壮的SQL代码(原书第2版)》第4章 不要重复,不要null
知识卡片
SQL 默认可能保留重复,因此需要知道哪些运算会自动去重,哪些不会。只在重复会改变语义时补上 DISTINCT,并避免 ALL,可以把多重集语义对关系推理的干扰降到最低。