2 hhhh112121 hhhh112121 于 2015.05.27 14:51 提问

mysl 创建视图然后查询

create view gaojia as select cat_id,goods_id,goods_name,shop_price from goods order by cat_id , shop_price desc;
select * from gaojia group by cat_id;
这样并不能查询出每个cat_id下的最高价商品;
这是ecshop下面的库,如果不创建视图,直接用子查询是能查询出正确结果的,创建视图后就不正确了,诸位谁能帮我分析一下原因;

3个回答

ajyufeng
ajyufeng   2015.05.27 14:54

create view gaojia as select cat_id,goods_id,goods_name,shop_price from goods order by cat_id , shop_price desc;
select * from gaojia group by cat_id;
这样并不能查询出每个cat_id下的最高价商品;
这是ecshop下面的库,如果不创建视图,直接用子查询是能查询出正确结果的,创建视图后就不正确了,诸位谁能帮我分析一下原因;

danielinbiti
danielinbiti   Ds   Rxr 2015.05.27 15:03

看一下你是否有访问视图的权限。
另外,就从这里来看

 select * from gaojia group by cat_id;
 select * from goods  group by cat_id;
 都是有问题的,因为表里面有多个字段
 要找最大价格还是需要
  select max(shop_price ),cat_id from gaojia group by cat_id的方式
hhhh112121
hhhh112121   2015.05.27 15:58

在创建视图时,如果将cat_id和goods_id换一下位置,就能查询出正确结果,这是什么原因呢,怎么会和字段位置还有关系呢?

Csdn user default icon
上传中...
上传图片
插入图片