关于 sql中 group by 后跟主键是没有任何意义的

最近自己在搞一个项目,发现了一个sql 是这样写的


SELECT     p.product_id, p.product_name, p.smallimg, p.type_id
FROM         dbo.tbProduct AS p INNER JOIN
                          (SELECT     type_id
                            FROM          dbo.tbProduct
                            GROUP BY type_id) AS t ON p.type_id = t.type_id


后来研究发现,

一: group by 后面不能跟主键,因为主键是无法分组的,在这里复习一下主键的定义 :主键是用于惟一地标识表中的某一条记录,所以说他不具备任何实际意义,它不是什么有意义的 比如说成绩、分数、工资等


以下的你们不用看,这个是我自己做的一些笔记

其实上面这样查询完全是因为表的设计者没有想到产品会有这样的需求,或者说 表的设计者把  产品类型表 的主键 当成了产品类型的代号,本来主键就不应该有具体的任何意义,表的主键主要负责标识表中的某一行,在具体项目中不推荐把表的主键赋予任何的意义。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值