您的位置:首页 > 数据库

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

2013-08-30 00:12 225 查看
最近自己在搞一个项目,发现了一个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 后面不能跟主键,因为主键是无法分组的,在这里复习一下主键的定义 :主键是用于惟一地标识表中的某一条记录,所以说他不具备任何实际意义,它不是什么有意义的 比如说成绩、分数、工资等

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

其实上面这样查询完全是因为表的设计者没有想到产品会有这样的需求,或者说 表的设计者把  产品类型表 的主键 当成了产品类型的代号,本来主键就不应该有具体的任何意义,表的主键主要负责标识表中的某一行,在具体项目中不推荐把表的主键赋予任何的意义。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐