例如我们需要查询商品表中每个分类中商品id最大的记录,并且显示商品价格
以下是表结构:
id catename title price 1 手机 小米5 1500 2 手机 小米6 2500 3 手机 苹果6 2450 4 电脑 三星c201 5000 5 电脑 戴尔n4050 2000 6 充电宝 小米充电宝 89 7 充电宝 罗马仕 110 8 充电宝 熊大大X能源 250
执行SQL:
select max(id) ,catename,price from shop_goods group by catename
我们会发现执行的结果如下
id 分类 价格 8 充电宝 89 3 手机 1500 5 电脑 5000
价格错误,其他都是正确的。
正确的SQL执行:
SELECT id,catename,price from shop_goods where id in(select max(id) from shop_goods group by catename )
正确的SQL执行结果:
id 分类 价格 3 手机 2450 5 电脑 2000 8 充电宝 250
1.定长和变长的分离 如int,char,time所占字节是固定的字段放在一张表 如varchar,text所占字节不确定的字段放在一张表中2.常用字段和不常用字段进行分离,根据查询频率来设计3.一对多的关联表可以添加冗余字段,如商品分类表 和商品表 ,在首页中需要显示每个分类商...
where与having非常类似.都能筛选数据.表达式完全一致. 但是职责的确不同.where负责对表中的字段进行筛选,having负责对where筛选后的结果集再次筛选。这也就是where不能使用别名字段来筛选的原因,因为数据中没有这个字段。&n...
需求查询出存在商品的商品分类. 先看看分类表:id(分类的id) catename(分类名) 1 手机 2 &n...
一般情况下,绝大部分,我们的主键是数字,1 2 3 4...所以我们才让它递增.这并不意味着,他们两个必须要绑定在一起使用.例如我还想将用户表的email字段设置为主键,但是并没有必要为其设置自增。 因此可...
有很多集成环境安装完成之后是没有快捷方式的,例如西部数码的网站管理助手4.0,、 更或者是护卫神PHP套件都是一样的。安装完成最多给你安装一个PhPmyadmin让你管理Mysql,但是对于经常使用命令行的我们来说是非常不方面的,而且还必须安装PhPmyadmin来管理。下面就让我们自己手...
我们从一个结果集中查询信息一般都是select * from (select...),每次都要编写from (select...)非常麻烦,于是我们将结果集保存起来,这就是视图的便利。创建视图的命令为:create view &nb...